| imho.ws |
![]() |
|
|
|
# 1 |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Php и тектовые файлы
У меня вопрос, связанный с попыткой перейти с Perl на PHP.
В Perl есть очень удобный модуль DB_File, который позволяет работать с тектовым файлом как с одномерным массивом, где каждый элемент - строка.То есть одним оператором я могу поменять конкретную строку в файле по ее номеру, удалить строку, добавить/удалять строки в начале или конце файла и т.д. Есть ли подобная вещь в PHP?
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|
|
|
# 3 |
|
::VIP::
Регистрация: 06.03.2003
Адрес: DZ, LBP, Moscow
Пол: Male
Сообщения: 633
![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
Спасибо за совет, но, видимо, я не совсем ясно пояснил, что имею в виду.
То, что предлагаешь ты , состоит из нескольких этапов: 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; # отвязываем файл
__________________
Меня многие спрашивают, как я живу с тремя головами... На самом деле, я триедин, как Великие Бобы! |
|
|