Получение кода ответа сервера на примере небольшого php скрипта, который получает список адресов из xml файла (sitemap.xml).
Php сниппет для получения кода ответа сервера
04.08.2022
$sIn = 'in.xml'; $sCRLF = "\n"; //$sCRLF = "<br/>"; $oXml = simplexml_load_file($sIn); $aRet = []; $i = 0; $iTotal = count($oXml); foreach($oXml as $oURL) { $sURL = $oURL->loc[0]; $headers = @get_headers($sURL); $code = (empty($headers[0]))?'0':substr($headers[0], 9, 3); $aRet[] = [ 'code' => $code, 'URL' => $sURL, ]; $i++; echo $i.' / '.$iTotal.$sCRLF; // if ($i > 3) { // break; // } } file_put_contents('out.json', json_encode($aRet));
Доработанный скрипт, берет входящий массив (json) и записывает каждый ответ новой строчкой в файл. Это позволяет избежать проблем с переполнением памяти, а также с падениями.
<?php $aLinks = json_decode(file_get_contents('links.json')); $sResultFileName = 'result.txt'; $i = 0; $iTotal = count($aLinks); foreach($aLinks as $sURL){ $headers = @get_headers($sURL); $code = (empty($headers[0]))?'0':substr($headers[0], 9, 3); file_put_contents($sResultFileName, $sURL.' :: '.$code . PHP_EOL, FILE_APPEND); $i++; echo "$i / $iTotal: $sURL \n"; }