fgets
Указатель файла должен быть действительным и указывать на файл, успешно открытый с помощью fopen () или fsockopen () (и еще не закрытый с помощью fclose () ).
Чтение заканчивается, когда было прочитано значение length — 1 байт, или новая строка (которая включена в возвращаемое значение), или EOF (в зависимости от того, что наступит раньше). Если длина не указана, он будет продолжать чтение из потока, пока не достигнет конца строки.
Return Values
Возвращает строку длиной до length байта, прочитанную из файла, на который указывает stream . Если в указателе файла больше нет данных для чтения, возвращается false .
В случае ошибки возвращается false .
Examples
Пример # 1 Построчное чтение файла
$fp = @fopen("/tmp/inputfile.txt", "r"); if ($fp) < while (($buffer = fgets($fp, 4096)) !== false) < echo $buffer; > if (!feof($fp)) < echo "Error: unexpected fgets() fail\n"; > fclose($fp); > ?>
Notes
Примечание . Если PHP неправильно распознает окончания строк при чтении файлов на компьютере Macintosh или созданных им, включение параметра конфигурации времени выполнения auto_detect_line_endings может помочь решить проблему.
Note:
Люди, привыкшие к семантике «C» fgets (), должны заметить разницу в том, как возвращается EOF .
See Also
- fgetss () — Получает строку из указателя файла и удаляет HTML-теги
- fread () — Бинарно-безопасное чтение файла
- fgetc () — Получает символ из указателя файла
- stream_get_line () — Получает строку из ресурса потока до заданного разделителя
- fopen () — открывает файл или URL
- popen () — Открывает указатель на файл процесса
- fsockopen () — Открывает соединение с Интернетом или доменным сокетом Unix
- stream_set_timeout () — Устанавливает время ожидания в потоке
PHP 8.2
(PHP 4,5,7,8)fgetc Получение символа из указателя файла Получение символа из заданного указателя файла.
(PHP 4,5,7,8)fgetcsv Получение строки из указателя файла и разбор на поля Аналогично fgets(),за исключением того,что fgetcsv()разбирает прочитанную строку на поля
(PHP 4,5,7)fgetss строка из указателя файла и зачистка HTML тегов Эта функция была УДАЛЕНА из PHP 7.3.0,и УДАЛЕНА в 8.0.0.
fgetss
Эта функция объявлена УСТАРЕВШЕЙ, начиная с PHP 7.3.0 и была УДАЛЕНА в версии PHP 8.0.0. Использовать эту функцию крайне не рекомендуется.
Описание
Функция идентична функции fgets() , за исключением того, что fgetss() удаляет любые NULL-байты, HTML- и PHP-теги из прочитанной строки. Функция сохраняет состояние синтаксического анализа от вызова к вызову и поэтому не эквивалентна вызову strip_tags() для возвращаемого значения fgets() .
Список параметров
Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и всё ещё не закрытый функцией fclose() ).
Можно использовать третий необязательный параметр для указания тегов, которые не нужно вырезать. Смотрите описание strip_tags() для более подробной информации о allowable_tags .
Возвращаемые значения
Возвращает строку длиной до length — 1 байт, прочтённых из файла, на который указывает дескриптор handle , с вырезанными тегами HTML и PHP.
В случае возникновения ошибки возвращает false .
Примеры
Пример #1 Построчное чтение PHP-файла
$handle = @ fopen ( «sample.php» , «r» );
if ( $handle ) while (! feof ( $handle )) $buffer = fgetss ( $handle , 4096 );
echo $buffer ;
>
fclose ( $handle );
>
?>
Результатом выполнения данного примера будет что-то подобное:
Добро пожаловать! Сегодня . Текст вне HTML-блока.
Примечания
Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.
Смотрите также
- fgets() — Читает строку из файла
- fopen() — Открывает файл или URL
- popen() — Открывает файловый указатель процесса
- fsockopen() — Открывает соединение с интернет-сокетом или доменным сокетом Unix
- strip_tags() — Удаляет теги HTML и PHP из строки
- SplFileObject::fgetss() — Получить строку из файла и удалить теги HTML
- Фильтр string.strip_tags
User Contributed Notes
fgets
Указатель на файл должен быть корректным и указывать на файл, успешно открытый функциями fopen() или fsockopen() (и все еще не закрытым функцией fclose() ).
Чтение заканчивается по достижении length — 1 байт, если встретилась новая строка (которая включается в возвращаемый результат) или конец файла (что встретилось первым). Если длина не указана, чтение из потока будет продолжаться до тех пор, пока не достигнет конца строки.
Замечание:
До версии PHP 4.3.0, опущение этого параметра означало, что длина строки будет равна 1024 символам. Если большинство строк в файле больше 8 килобайт, в целях производительности вашего скрипта стоит указать максимальную длину строки.
Возвращаемые значения
Возвращает строку размером в length — 1 байт, прочитанную из дескриптора файла, на который указывает параметр handle . Если данных для чтения больше нет, то возвращает FALSE .
В случае возникновения ошибки возвращает FALSE .
Список изменений
Версия | Описание |
---|---|
4.3.0 | fgets() теперь безопасна для обработки бинарных данных |
Примеры
Пример #1 Построчное чтение файла
$handle = @ fopen ( «/tmp/inputfile.txt» , «r» );
if ( $handle ) while (( $buffer = fgets ( $handle , 4096 )) !== false ) echo $buffer ;
>
if (! feof ( $handle )) echo «Error: unexpected fgets() fail\n» ;
>
fclose ( $handle );
>
?>?php
Примечания
Замечание: Если у вас возникают проблемы с распознаванием PHP концов строк при чтении или создании файлов на Macintosh-совместимом компьютере, включение опции auto_detect_line_endings может помочь решить проблему.
Замечание:
Программисты, привыкшие к семантике ‘C’ функции fgets() , должны принимать во внимание разницу в том, каким образом возвращается признак достижения конца файла (EOF).
Смотрите также
- fgetss() — Прочитать строку из файла и отбросить HTML-теги
- fread() — Бинарно-безопасное чтение файла
- fgetc() — Считывает символ из файла
- stream_get_line() — Получает строку из потокового ресурса до указанного разделителя
- fopen() — Открывает файл или URL
- popen() — Открывает файловый указатель процесса
- fsockopen() — Открывает соединение с интернет сокетом или доменным сокетом Unix
- stream_set_timeout() — Устанавливает значение тайм-аута на потоке
Выборка от и до определенного символа
Удалить часть строки от определенного символа до определенного символа
Всем привет, есть строка 127.0.0.1(spec) (domen\admin — user) как удалить не нужные символы.
Считывание от определенного символа до другого определенного символа
Привет всем, можете помочь мне с кодом одним? Мне нужно что бы начиналось чтение от определенного.
Считать из файла от определенного символа(слова) до определенного символа(слова)
Считываем текст из файла. Допустим от слова "Qwerty" до слова "Uiop". Примерно догадываюсь как это.
Как скопировать подстроку из строки до определенного символа? Или удалить, начиная с этого символа
Добрый вечер. Ответ искал, но не нашёл. Предположим, есть строка: ABC|DEF Надо скопировать.
$avatar = 'text_text2_text3'; $avatar = preg_split("/\||\_/m",$avatar); //$avatar = $avatar[0]. ' ' .$avatar[1].'_'.$avatar[2]; echo '"'.$avatar[0]. '" и "' .$avatar[1].'_'.$avatar[2].'"'; ?>
Сообщение от Cript
$str = "text_text2_text3"; preg_match("/^([^_]*)_(.*)$/", $str, $res); echo $res[1]."
\r\n"; // В переменной $res[1] хранится часть ДО первого _ echo $res[2]."
\r\n"; // В переменной $res[2] хранится часть ПОСЛЕ первого _ ?>
Сообщение от MVS76
Сообщение от pav1uxa
$str = «text_text2_text3»;
preg_match(«/^([^_]*)_(.*)$/», $str, $res);
echo $res[1].»
\r\n»; // В переменной $res[1] хранится часть ДО первого _
echo $res[2].»
\r\n»; // В переменной $res[2] хранится часть ПОСЛЕ первого _
?>?
Интересный вариант, но если строка не содержит символа «_» то $res[1],[2] будут пустыми, случайно не знаете как исправить ?
$source = 'text_text2_text3'; $offset = strpos($source, '_'); $result = ($offset) ? substr($source,0,$offset) : $source; echo " => "; ?>
Если в тексте есть символ «_», то в результате окажется строка от начала до «_».
Если в тексте нет символа «_», то в результате окажется вся строка.
Добавлено через 7 минут
Если нужно просто разделить, то:
$source = 'text_text2_text3'; $result = explode('_', $source, 2); echo ""
; print_r($result); echo "
"; ?>
Сообщение от Cript
Интересный вариант, но если строка не содержит символа «_» то $res[1],[2] будут пустыми, случайно не знаете как исправить ?
Вы не говорили что его может не быть. Опишите лучше, что Вам надо. Какие могут быть варианты, какие при этом должны храниться результаты. Где они должны храниться, как храниться.
$str = "text1_text2 text3"; if (preg_match("/^([^_]*)_(.*)$/", $str, $result)) { $res[]=$result[1]; $res[]=$result[2]; } else $res[] = $str; print_r($res); ?>
Сообщение от pav1uxa
Какие могут быть варианты, какие при этом должны храниться результаты. Где они должны храниться, как храниться.
Название картинки, может содержать название типа 123_1.png, либо 1400860521_123_2.png, где 1400860521 — время в unix формате.
Нужно задать условие, если картинка имеет в начале приставку со временем, то путь до папки с картинкой другой и т.д..
Сообщение от Cript
Нужно задать условие, если картинка имеет в начале приставку со временем, то путь до папки с картинкой другой и т.д..
1 2 3 4 5 6 7 8 9 10 11 12 13
$str = "text1_text2 text3"; if (preg_match("/^([^_]+)_(.*)$/", $str, $result)) { // имеет приставку. приставка находится в $result[0] // остальная часть файла после символа "_" в $result[1] } else { // не имеет приставку // название целиком по прежнему хранится в $str } ?>
Сообщение от pav1uxa
$str = «text1_text2 text3»;
if (preg_match(«/^([^_]+)_(.*)$/», $str, $result))
* * // имеет приставку. приставка находится в $result[0]
* * // остальная часть файла после символа «_» в $result[1]
>
else
* * // не имеет приставку
* * // название целиком по прежнему хранится в $str
>
?>?php
Супер! Все работает, только первая часть названия это $result[1], вторая $result[2], а $result[0] выведет изначальное название целиком.
Как читать строку в массив до определенного символа и после продолжить чтение опять до символа
Как читать строку в массив до определенного символа и после продолжить чтение опять до символа. к.
Копирование от определенного символа до определенного символа
Такая задача есть строки и нужно скопировать после символа * и до третьего пробела 2281488 Г Ц .
Функция искать от определенного символа до другого символа
Доброго времени суток. Ребят подскажите пожалуйста как сделать такую функцию — Найти в ячейке слово.
Поиск определенного слова в строке и замена определенного символа после этого слова
Представим что у нас есть следующая строка: "Дядя Петя 10 раз ударил дядю Васю, но дядя Вася.
Выборка от символа до символа с заменой
Всем привет! Кто подскажет написание запроса на выборку от определенного символа до символа с.
Выборка определенного значения
Здравствуйте. Есть таблица Iso__ жанр _____актер1___ актер2__________________текст.