Я хочу получить содержимое файла .txt и распечатать его только до определенного ключевого слова php

Предположим, что есть текстовый файл 1.txt со следующим содержимым.

wow<br>wow<br>wow<!--Read More--><br>wow<br>wow<br>wow<br>wow<br>wow<br>wow<br>

Я хочу отображать его содержимое только до <!--Read More--> В настоящее время я использую команду fopen для чтения и отображения всего текстового файла.

$file_handle = fopen("posts/1.txt", "r");
while (!feof($file_handle)) {
$line_of_text = fgets($file_handle);
print $line_of_text;
}

Пожалуйста, помогите мне с этим...


person Krishna .M    schedule 06.02.2013    source источник


Ответы (1)


Предупреждение. Это работает, только если ваш "стоп-текст" всегда находится на одной строке.

Вы можете использовать функцию strstr(), чтобы проверить, содержит ли строка, которую вы читаете, строку на чем остановиться.

Вызов с вашей строкой в ​​качестве первого параметра, искомая строка в качестве второго и true в качестве третьего параметра вернет false, если искомая строка не находится в строке, или она вернет часть строки до искомая строка.

$file_handle = fopen("posts/1.txt", "r");
while (!feof($file_handle)) {
    /* Retrieve a line */
    $line_of_text = fgets($file_handle);
    /* Check if the stop text is in the line. If no returns false
       else return the part of the string before the stop text */
    $ret = strstr($line_of_text, "<!--Read More-->", true);
    /* If stop text not found, print the line else print only the beginning */
    if (false === $ret) {
        print $line_of_text;
    } else {
        print $ret;
        break;
    }
}
person koopajah    schedule 06.02.2013
comment
Это работает отлично :) Спасибо :) но мой домен говорит, что Предупреждение: Неверный счетчик параметров для strstr() в /home/karnaehg/public_html/postboard.php в строке 36. Как исправить эту ошибку? - person Krishna .M; 01.04.2013
comment
@user2046614 user2046614: у вас должна быть старая версия PHP (до 5.3), поэтому третий параметр strstr не существует в вашей версии. - person koopajah; 02.04.2013