imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Веб-мастеру > Веб-программирование
Опции темы
Старый 16.10.2003, 19:41     # 1
Goryn
::VIP::
 
Аватар для Goryn
 
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633

Goryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собой
Php и тектовые файлы

У меня вопрос, связанный с попыткой перейти с Perl на PHP.

В Perl есть очень удобный модуль DB_File, который позволяет работать с тектовым файлом как с одномерным массивом, где каждый элемент - строка.То есть одним оператором я могу поменять конкретную строку в файле по ее номеру, удалить строку, добавить/удалять строки в начале или конце файла и т.д.

Есть ли подобная вещь в PHP?
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы!
Goryn вне форума  
Старый 16.10.2003, 20:05     # 2
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Есть, нет ... писать пять минут. Чтобы открыть файл как массив строк, используй file() ... хочешь поменять по номеру - измени в массиве, затем implode("\r\n",$file_arr) и fwrite() ...
RaZEr вне форума  
Старый 17.10.2003, 16:42     # 3
Goryn
::VIP::
 
Аватар для Goryn
 
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633

Goryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собойGoryn Имеются все основания чтобы гордиться собой
Спасибо за совет, но, видимо, я не совсем ясно пояснил, что имею в виду.

То, что предлагаешь ты , состоит из нескольких этапов:
1) считывание файла в память ЦЕЛИКОМ
2) обработка в памяти
3) запись в файл целиком.

Это очевидный вариант, но он обладает рядом существенных минусов:
1) происходит чтение/запись ОГРОМНОГО массива данных
2) необходимо заботится о блокировки файла на время работы с ним
и т.д и т.п.

Меня же интересует вариант другой. Я привязываю к идентификатору файл таким образом, что для меня он выглядит уже как массив.
Я обращаюсь к его конкретной строке по ее номеру, и модуль сам находит ее и делает что мне надо. При этом он работает только с нужной мне строкой. Фактически это работа с DBM-базой данных.

Пример: у меня есть текстовый конфикурационный файл, в первой строке которого находится счеткик. Тогда чтобы мне считать текушее его показание для использования в дальнейшем, при этом увеличив индекс на 1 надо всего лишь 3 строки + добавление модуля в начале скрипта (код дан на Perl):

Код:
use DB_File;
...
$numobj=tie(@numline, "DB_File", "имя_текстового_файла", O_RDWR|O_CREAT, 0666, $DB_RECNO); # привязываем файл
$orgnum=$numline[0]=$numline[0]+1; # считываем индекс счетчика в переменную $orgnum
undef $numobj; untie @numline; # отвязываем файл
Собственно, аналог вот чего мне хотелось бы найти в PHP
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы!
Goryn вне форума  
Старый 17.10.2003, 17:31     # 4
RaZEr
МОД-Оператор ЭВМ
 
Аватар для RaZEr
 
Регистрация: 18.04.2002
Адрес: Питер
Сообщения: 4 343

RaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех ГуруRaZEr Отец (мать) всех Гуру
Я бы на твоем месте не изобретал велосипед и использовал БД.
RaZEr вне форума  

Опции темы

Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 13:29.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.