$nomadspage = "http://www.nomads.ncep.noaa.gov/pub/data/nccf/com/gfs/prod/";
$html = file_get_contents($nomadspage);
$count = preg_match_all('/<a href="([^"]+)">[^<]*<\/a>/i', $html, $files);
unset($files[1]); //deletes repeat array from preg_match
$files = $files[0]; //deletes container array from preg_match
foreach ($files as $key => $value) {
if (substr($value, 0, 3) !== "gfs") {
unset($files[$key]);
}
}
var_dump($files);
У меня есть массив с именами файлов из каталога HTTP. Я хочу отфильтровать имена этих файлов, чтобы все файлы, которые не начинались с трех букв gfs
, удаляются из массива. Однако по какой-либо причине функция substr()
не работает. Он не вытягивает подстроку из имен файлов. Следовательно, инструкция if
не работает. Кто-нибудь знает, почему это происходит и как это исправить?substr() PHP не работает для элементов массива
Можете ли вы дать нам подмножество массива '$ files'? – forrestmid
Должна быть проблемой 'preg_match_all()'. Например, вы не получаете результаты, о которых думаете. Возможно, вам следует использовать [DOMDocument] (http://php.net/manual/en/class.domdocument.php), когда вы все равно разбираете HTML. Еще лучше, я уверен, что информация NOAA доступна как ответ JSON где-то. – PHPglue