Люди, может кто знает, как при помощи PHP прочесть файл и всё его содержимое поместить в одну переменную. Для дальнейших самых разных операций с этой переменной.
File(); не хочется юзать. Ибо после него надо массивы склеивать, а хочется чего-то простого.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Long,
человек, дорогой, хотите придраться к словам? Раньше (до 4.3) не было file_get_contents. Вот я и говорю, что раньше пользовались связкой fopen + fread всегда. и не надо мне смайликов wink
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
bE(o0L - не предлагай вариантов, в которых не шаришь.
Рассмотрим: $content=implode('',file(filename));
Алгоритм:
1. Прочитать файл в одну строку (file)
2. Пробежать файл и разрезать его в массив по "\n" новым линиям (файл)
3. Пробежать массив и собрать его в одну строчку (implode)
Не кажется, что пара пунктов тут немного лишние? =)) Хех. Только file_get_contents();
VolkaR,
это не лучший вариант, это вариант который возможен.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
Inviz, это вариант который _не_возможен_. Иначе я могу предложить ещё бесконечное число вариантов с бесконечный разнообразием ненужных пунктов для получени контента файла Согласен? implode('', file()) - эта конструкция вообще не должна нигда встречаться. Так как она порочна =)
bE(o0L - умничать - моя хлеб, так что извини, буду умничать дальше, пока платят От версии пхп не зависит использование корявых вариантов. Я тоже могу предложить варант
$fcontent = str_replace('myNL', '', implode('myNL', file('/path/to/file')));
и потом долго всем втирать, что серверу без разницы что там написал кривой программер - всё проглотит )
Программа должна не только работать. Программа ещё не должна содержать лишних инструкций Или ты со мной не согласен? =)
VolkaR, не надо распыляться про fopen и fread, и пытаться придумать чтолибо сверху implode('',file()). Ибо в первом случае разницы в производительности незначительные крохи, а кода на байты больше. Ведь программа не должна содержать лишних инструкций.
Преимущества file_get_contents() в удобстве и приросте производительности. Но посути это тотже file(). Конечно же я использую именно его (get contents) но это не должно мешать знать об альтернативах. =)
>> Преимущества file_get_contents() в удобстве и приросте производительности. Но посути это тотже file()
Это не тот же file(); скорее наоборот Подумай сам, file() - лишь собирательная функция, потому что нельзя протоколу сказать "Получить тект до ближайшего \n" - а значит file() получает данные в чистом виде и потом режет. Так? А нахрена тогда сначала резать, а потом склеивать? file() сам использует fopen(),fclose() - это базовые функции. А значит и лишние инструкции будут только при implode() =))
Единственное - если версия <4.3.0 тут я согласен, что на таком древнем языке можно пренебречь временем выполнения - всёравно хостинг говно и народу там мало ) Ведь 4.3.0 был зарелизен ещё в 2002м году Наводит на мысли.
17 Сообщения: 4362 Зарегистрирован: 25.04.01 Откуда: Москва
Добавлено: 19 Сентябрь 2005, 08:20:53
Inviz, я хочу чтобы ты если давал совет, то чтобы он был полный и не предполагал разночтений. иначе - лучше помолчи, дабы у новичков не возникало не верного представления.
_________________ Мудрость не всегда приходит с возрастом. Бывает, что возраст приходит один.
Long,
Товарищ, прошу вас, не затыкайте меня и не указывайте мне, что и когда говорить. Все равно бесполезно.
Тем паче, в моем понимании, fread само собой разумеется.
_________________ критиковать человека не имеет смыла, потому что критика заставляет его защищаться и, как правлио искать оправданий. критиковать человека опасно, так как критика наносит удар его гордости, задевает чувство собственной значитмости и обижает его. (Дейл Карнеги)
bE(o0L - Если ее можно избежать, то грех Хотя, если б у меня была версия 4.2.0, я б сам написал implode('', file()) если б делал низкобюджетный проект или какое нить исправление в чужом скрипте ) Никто не идеален =) Но в высших версиях это явно недопустимо =)
Ещё есть такой вариант как кэширование в самом php. Лучше сделать несколько тестов, но каждый раз вручную переименовывая (или немного меняя) файл что бы избежать кэша Такие мысли...
Дети мои, вы пугаете меня до приступов метеоризма.
Правильный алгоритм:
1. Сделать пару сотен тестовыъ файлов.
2. Сделать ОДИН скрипт, в котором в цикле открывать файлы вначале одним, а затем другим способом.
3. Померить скорость.
4. Осознать, что полученные результаты абсолютно бесполезны в реальной жизни.
5. Пойти пить водку.
_________________ We've got the big memory and the small memory. The small memory's to remember the small things and the big memory's to forget the big ones.
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.