|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
15.06.2011, 16:33 | #1 |
Форумчанин
Регистрация: 21.09.2009
Сообщений: 431
|
Работа с файлов в цикле
К примеру есть текстовый фаил 1.txt с 5 строками. Надо вывести каждую строку на страницу.
Я в php нуб ( delphi мой конек ) и погуглив определился вот так: Код:
|
15.06.2011, 16:46 | #2 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 266
|
Код:
|
15.06.2011, 16:48 | #3 |
Форумчанин
Регистрация: 21.09.2009
Сообщений: 431
|
мне цикл понадобитсья так как потмо буду в цикле операции проделывать еще с выведеннйо строкой из файла.
не надо узнать именно что не хватает в моем примере |
15.06.2011, 16:50 | #4 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 266
|
foreach($arr as $a) - это разве не цикл?
|
15.06.2011, 17:07 | #5 |
Форумчанин
Регистрация: 21.09.2009
Сообщений: 431
|
я не знаю. пишу же что знаю delphi. нашел аналоги ператоров и селал свой пример.
просто ваш пример я не понимаю. Значит мой косячный да ? |
15.06.2011, 17:08 | #6 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
А чем конкретно плох вариант ТС ? Я не имею в виду фичи типа "echo" и иже с ними. Он должен вроде как быть рабочим. Несколько странным отсутствием общепринятых пхп-функций, но рабочим.
ТС - обычно в пхп используется echo для вывода (обратите внимение, echo не добавляет эол в конце строки, это нужно делать самостоятельно, но работат быстрее, чем print), да и чтением всего файла в массив мало кто пользуется. Обычно читают всё в строку, и потом с ней уже работают. Если недостаточно памяти для обработки всего файла сразу, то открывают файл, читают его построчно, (пхп-нэт подскажет, как это делать, fopen , fgets и т.д.), и, построчно же, обрабатывают. Не забудьте только потом его закрыть. Обратите внимание, куда вы будете выводить результаты- если в текстовый файл, то всё ок, если на html-страницу, тогда выводите <br/> после каждой строки, т.к. в html именно так переносятся строки. Эол не поможет (хотя и будет нелишним, потому что при просмотре сорса страницы переносы строк осуществляет именно эол (\n или \r\n в зависимости от ОС) В варианте nec117 - явная некросплатформенность. На лине будет спотыкаться. Принимайте во внимание различное разделение строк на винде, лине и маке, иначе можно на этом словить багов из ниоткуда. Советую хотя бы (если не пользоваться фичами типа php_eolов) использовать что-то типа $t=strtr($t,"\r","\n"); $t=str_replace("\n\n","\n",$t); и в нужный момент потом перебросить в нужный эол при необходимости: $t=str_replace("\n",$нужный_эол,$t) ; Ну, или $t=nl2br($t); если это html и вы так любите излишние языковые фичи. Последний раз редактировалось graymaster; 15.06.2011 в 17:22. |
15.06.2011, 17:21 | #7 |
Форумчанин
Регистрация: 01.10.2008
Сообщений: 266
|
graymaster в каком же лине это будет спотыкаться и на чем?
|
15.06.2011, 17:36 | #8 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
На вскидку и практику - дженту. А вообще - на любом. Не забывайте - новая строка в лине - это \n а не \r\n. Т.е. ваш эксплод не раделит строки просто, и выведет весь контент как одну. Баги словить несложно не только на php. Сейчас только что перезапустил обработчик - не обратил внимание, что неизвестные умники часть исходного файла с данными сделали с \n, а часть - с \r\n, а там - имёна файлов. Список замечательно прочитался по строкам с добавлением к некоторым из них в конце \r. Файлы, соответственно, не открылись, просто игнорились, т.к. таких файлов, в общем-то, не существует (лишний символ в конце имени). Вот так. 12 часов работы "теслы" - коту под хвост. Язык C++.
|
15.06.2011, 17:56 | #9 |
Форумчанин
Регистрация: 21.09.2009
Сообщений: 431
|
существует ли другой способ считывания построчно кроме как запихать все в массив и работать уже с ним ?
Последний раз редактировалось kakawkin; 15.06.2011 в 18:59. |
15.06.2011, 19:17 | #10 |
Форумчанин
Регистрация: 03.05.2011
Сообщений: 158
|
Да, конечно же.
PHP код:
Или цикл обязательно должен быть for ? Последний раз редактировалось graymaster; 15.06.2011 в 19:22. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Работа с символами в цикле | cheef | PHP | 2 | 14.01.2011 18:21 |
работа с именами файлов | серг | Общие вопросы C/C++ | 1 | 25.02.2010 15:06 |
Работа с каталогом тхт файлов. | littlecoder | Общие вопросы Delphi | 4 | 17.12.2008 22:47 |
C++ Builder Работа со строками файлов | Ya_Nika | C++ Builder | 2 | 08.03.2008 02:47 |
Работа с ФТП: Скачка файлов | Horror | Общие вопросы .NET | 4 | 03.03.2008 14:50 |