[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Работа с файлами.Оптимизирование кода
KaFe
Смысл кода, открываем файл в нем находим нужную строчку если строчка найдена то перезаписываем данные в этой строчке и сохраняем файл, вот код
$file=file('hq/'.$dir_name.'/cfg.php');
while (($off<>1) && ($f<>sizeof($file)))
{
$f++;
$str=explode("::",$file[$f]);
if ($column==$str[0])$file[$f]=$str[0].'::'.$id."\n";
}
$massiv=$file;
$files=fopen('hq/'.$dir_name.'/cfg.php','w');
for ($z=0;$z<sizeof($massiv);$z++) fwrite($files,$massiv[$z]);
fclose($files);


вид файла cfg.php

<?php die();?>
text
1::3000
2::0


Проблема нужна максимальная оптимизация



Спустя 1 час, 16 минут, 33 секунды (19.06.2010 - 22:01) SlavaFr написал(а):
file не нужно, так как полностью весь файл в масив заганяется,
так что просто по строчке считываеш, меняеш что надо и строчку в темп файл записываеш.
потом переиминовуеш темп файл в первоночальный.

вопросы:
1) почему не пользуешся Б.Д
2) почему решил, что твой вопрос в разделе для знатоков должен был поставлен?

Спустя 8 часов, 29 минут, 41 секунда (20.06.2010 - 06:31) Basili4 написал(а):
Похду вирус мании величия. Или не понимание Почему форум делется на разделы и почему следует постить свои темы в своих разделах. Он еже по моему 2 или 3 чел которой так делает. Дружище Я все понимаю ты на форуме аж 1 месяц, 23 дня и возможно ты считаешь себя уже знатоком. Не говоря о том что ты в идеале знаешь Delphi, С++ и PHP и много другого.
Но вот приставь ты задал вопрос для новичков в раздели на знатоков тебе на него ответили. Другой новичок ищущий ответа на такой же вопрос облезает весь раздел для новичков но не найдет ответа, создаст новую тему и на этот раз так может случится что не получит ответа. таким образом он останется без помощи. Да к то муже модерам лишнее хлопоты по перелету тем. Что респкта к тебе не прибавляет.

Спустя 3 часа, 47 минут, 39 секунд (20.06.2010 - 10:19) gzim9x написал(а):
Цитата
Проблема нужна максимальная оптимизация


по коду:
попробуйте использовать strpos хотя бы... - а то у вас все строки разбираются -- несмотря на то есть ли там вхождение или нет...

а по поводу максимальной оптимизации...
вообще все зависит от размера файла -- если у вас файл в несколько Mb -- быстрее через system/exec вызывать скрипт на shell -- несмотря на что вызов занимает время, awk и grep все же заточены под такой поиск. Еще быстрее -- свой модуль на C.
как промежуточный вариант -- использовать LOAD DATA INFILE -- и поиском уже по базе.

но судя по имени разбираемого файла (cfg.php) -- подумайте как применить в вашем случае parse_ini_file -- мне кажется это именно то что вам нужно wink.gif

Спустя 3 часа, 6 минут, 12 секунд (20.06.2010 - 13:25) KaFe написал(а):
Цитата (SlavaFr @ 19.06.2010 - 19:01)
file не нужно, так как полностью весь файл в масив заганяется,
так что просто по строчке считываеш, меняеш что надо и строчку в темп файл записываеш.
потом переиминовуеш темп файл в первоночальный.

Создание временного файла,запись в него,удаление старого, переименование в старый - отличительно оптимизировали. unsure.gif ТУПО!!!
Цитата (SlavaFr @ 19.06.2010 - 19:01)

вопросы:
1) почему не пользуешся Б.Д
2) почему решил, что твой вопрос в разделе для знатоков должен был поставлен?

1) Это мое личное дело
2) Смотря по вашему ответу, я думаю, а почему же ваши посты вообще тут должны быть?

Спустя 12 минут, 11 секунд (20.06.2010 - 13:37) KaFe написал(а):
Basili4А вы ответите на этот вопрос? пока лишь здесь реальные вещи предложил только gzim9x! Делать выводы вам!

Цитата (gzim9x @ 20.06.2010 - 07:19)
но судя по имени разбираемого файла (cfg.php) -- подумайте как применить в вашем случае parse_ini_file -- мне кажется это именно то что вам нужно


Я знаю вариант parse_ini_file и у меня были идеи, но я остановился на записи информации в файл в виде ini файла, может у вас есть соображения?Буду благодарен.


Спустя 23 минуты, 13 секунд (20.06.2010 - 14:00) gzim9x написал(а):
Цитата
Я знаю вариант parse_ini_file и у меня были идеи, но я остановился на записи информации в файл в виде ini файла, может у вас есть соображения?Буду благодарен.


в качестве начального варианта можно взять этот:
http://stackoverflow.com/questions/1268378...e-values-in-php

но опять же... все зависит от того как часто вы в этот файл планируете писать.
для хранения базы -- ini-файлы подходят с натяжкой. А для конфигов -- идеально.

P.S.
не нападайте на форумчан -- перестанут отвечать....

Спустя 16 минут, 20 секунд (20.06.2010 - 14:17) KaFe написал(а):
Цитата
не нападайте на форумчан -- перестанут отвечать...
laugh.gif у нас с Basili4 взаимное не желание понять друг друга laugh.gif

gzim9x с ini файлами ладно, но может еще что нибудь можно сделать

Спустя 23 минуты, 58 секунд (20.06.2010 - 14:41) gzim9x написал(а):
Цитата
gzim9x с ini файлами ладно, но может еще что нибудь можно сделать

smile.gif
есть еще csv (fgetcsv,fputcsv), функции для работы с бинарными файлами (fwrite... и т.д.)

Спустя 2 часа, 1 минута, 15 секунд (20.06.2010 - 16:42) SlavaFr написал(а):
не чего не могу больше добавить в этом топике, так как оскорбления в этом форуме запрещены.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.