#php #regex
#php #регулярное выражение
Вопрос:
Я пытаюсь извлечь значения между eng_tid
и eng_data для http://fdguirhgeruih.x10.mx/html.txt и я продолжаю получать ошибки T-строки.
почему я продолжаю получать ошибки
<? php
//First, open the file. Change your filename
$file = "http://fdguirhgeruih.x10.mx/html.txt";
$word1='tid';
$word2='data';
$handle = fopen($file, "r");
$contents = fread($handle, filesize($file));
fclose($handle);
$between=substr($contents, strpos($contents, $word1), strpos($contents, $word2) - strpos($contents, $word1));
echo $between;
?>
Комментарии:
1. Пожалуйста, всегда указывайте точные сообщения об ошибках, которые вы получаете. Спасибо!
Ответ №1:
ОБНОВЛЕНИЕ после просмотра сообщений об ошибках…
Вместо fread()
того, чтобы пытаться использовать размер в байтах вашего целевого файла, вы можете просто использовать file_get_contents()
для извлечения удаленного файла. Ваша ошибка связана с тем, что PHP хочет прочитать размер файла, как если бы он был локальным, но это удаленный файл по HTTP. filesize()
сообщает 0 и ошибка. Вместо этого выполните
// Don't do this...
//$handle = fopen($file, "r");
//$contents = fread($handle, filesize($file));
//fclose($handle);
// Instead do this...
$contents = file_get_contents($file);
Комментарии:
1. @RacquelAitken Вам нужно опубликовать свои ошибки и больше вашего кода, если это не все.
2. Предупреждение: filesize() [функция. размер файла]: ошибка статистики для fdguirhgeruih.x10.mx/html.txt в /home/regerger/public_html/extract.php в строке 10 Предупреждение: fread() [функция. fread]: параметр длины должен быть больше 0 в /home/regerger/public_html/extract.php в строке 10
3. @RacquelAitken Теперь я понимаю — смотрите Мое обновление и используйте
file_get_contents()
вместоfopen()/fread()
4. <код><?php //Сначала откройте файл. Измените имя файла $file = » fdguirhgeruih.x10.mx/html.txt «; $word1=’eng_tid’; $word2=’eng_type’; $contents = file_get_contents($file); $between=substr($contents, strpos($contents, $word1), strpos($contents, $word2) — strpos($contents, $word1)); echo $between; ?></code>
5. @RacquelAitken Запустив этот код, я получаю обратно длинную строку из файла.