PHP: проверьте URL в файле Excel - PullRequest
0 голосов
/ 31 января 2019

У меня есть файл Excel, который имеет больше, чем URL, он выглядит как URL 2000.

Мне нужно проверить этот URL, если URL перенаправить на: https://example.com/Home/Index удалить его из файла.

Структура URL выглядит следующим образом: https://example.com/39188

Я вижу этот код, но он мне нужен для проверки из файла

$urls = array(
    'http://www.apple.com/imac',
    'http://www.google.com/'
);

$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

foreach($urls as $url) {
    curl_setopt($ch, CURLOPT_URL, $url);
    $out = curl_exec($ch);

    // line endings is the wonkiest piece of this whole thing
    $out = str_replace("\r", "", $out);

    // only look at the headers
    $headers_end = strpos($out, "\n\n");
    if( $headers_end !== false ) { 
        $out = substr($out, 0, $headers_end);
    }   

    $headers = explode("\n", $out);
    foreach($headers as $header) {
        if( substr($header, 0, 10) == "Location: " ) { 
            $target = substr($header, 10);

            echo "[$url] redirects to [$target]<br>";
            continue 2;
        }   
    }   

    echo "[$url] does not redirect<br>";
}

Как это сделать ...

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Мне так кажется:

  • Шаг 1: Найти lib для чтения и записи файла Excel в PHP
  • Шаг 2: чтение файла excel -> массив URL
  • Шаг 3: Создать общий метод: checkUrl (url) return true / false
  • Шаг 3: Создать массив: existArray
  • Шаг 4: циклмассив (шаг 2), вызов метода checkUrl (url)
  • IF False (перенаправление URL) -> отправить URL-адрес на existArray
  • Шаг 5:записать файл Excel с данными existArray

Чтение XLSX (Excel 2003 +) https://github.com/shuchkin/simplexlsx

if ( $xlsx = SimpleXLSX::parse('book.xlsx') ) {
    print_r( $xlsx->rows() );
} else {
    echo SimpleXLSX::parseError();
}

Вывод

Array (
    [0] => Array
        (
            [0] => ISBN
            [1] => title
            [2] => author
            [3] => publisher
            [4] => ctry
        )
    [1] => Array
        (
            [0] => 618260307
            [1] => The Hobbit
            [2] => J. R. R. Tolkien
            [3] => Houghton Mifflin
            [4] => USA
       )

)

Запись ФАЙЛА

header("Content-Disposition: attachment; filename=\"demo.xls\"");
header("Content-Type: application/vnd.ms-excel;");
header("Pragma: no-cache");
header("Expires: 0");
$out = fopen("php://output", 'w');
foreach ($array as $data)
{
    fputcsv($out, $data,"\t");
}
fclose($out);
0 голосов
/ 31 января 2019

Вам нужен файл () - функция:

$urls = file('urls.txt');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...