PHP strstr() возвращает только одну строку
Прежде всего: мне очень нравится этот сайт, и я думаю, что это лучший форум для программирования:)
Теперь к моей проблеме, которую я пытаюсь отобразить, используя код и комментарии:
$file = fopen ($URL, "r");
// $URL is a string set before, which is correct
// Also, I got the page-owners permission to acquire the page like that
if (!$file)
{
echo "<p>Could not open file.\n";
exit;
}
while (!feof ($file))
{
$buffer = fgets($file);
$buffer= strstr($buffer, "Montag</b>");
// If I don't use this line, the whole page gets displayed...
// If I use this line, only the first line after the needle gets displayed
echo $buffer;
}
fclose($file);
Таким образом, в принципе, я могу отобразить всю страницу или одну строку после иглы, но не все после иглы....
Я пытался найти решение, используя Справочник по PHP, поисковую систему Stackru и, конечно, Google, но не смог найти решение, спасибо всем, кто хочет мне помочь.
Привет userrr3
1 ответ
Извлечение текста из файла
Вы берете только одну строку за раз из файла, используя fgets()
DOCs, если вы хотите весь файл, используйте file_get_contents()
DOCs вместо:
$file = file_get_contents($URL);
$buffer= strstr($file, "Montag</b>");
// If I don't use this line, the whole page gets displayed...
// If I use this line, only the first line after the needle gets displayed
echo $buffer;
Хватая ваш текст
Это может быть достигнуто с помощью PHP substr()
DOCs функция в сочетании с strpos()
Документы:
$buffer = substr($buffer, strpos($buffer, 'Montag</b>'));
Это будет захватывать весь текст после первого появления иглы Montag</b>
,
Собираем все вместе
$file = file_get_contents($URL);
$buffer = substr($file, strpos($buffer, 'Montag</b>'));
echo $buffer;