Предположим, что есть текстовый файл 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;
}
Пожалуйста, помогите мне с этим...
Ответ 1 · koopajah
Предупреждение. Это работает, только если ваш "стоп-текст" всегда находится на одной строке.
Вы можете использовать функцию 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;
}
}