PHP strstr () возвращает только одну строку - PullRequest
1 голос
/ 21 января 2012

Прежде всего: мне очень нравится этот сайт, и я думаю, что это лучший форум для программирования:)

Теперь к моей проблеме, которую я пытаюсь отобразить, используя код и комментарии:

    $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 Referenceпоисковая система Stackoverflow и, конечно, Google, но я не смог найти решение, спасибо всем, кто хочет мне помочь.

Привет userrr3

1 Ответ

2 голосов
/ 21 января 2012

Извлечение текста из файла

Вы берете только одну строку за раз из файла, используя fgets() DOCs , если вы хотите весь файл, тоиспользуйте file_get_contents() DOC вместо:

$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() *Функция 1020 * DOCs в сочетании с strpos() DOCs :

$buffer = substr($buffer, strpos($buffer, 'Montag</b>'));

Это захватит весь текст после первого появленияигла Montag</b>.

Собираем все вместе

$file = file_get_contents($URL);
$buffer = substr($file, strpos($buffer, 'Montag</b>'));
echo $buffer;
...