Форум Flasher.ru

Форум Flasher.ru (http://www.flasher.ru/forum/index.php)
-   PHP (http://www.flasher.ru/forum/forumdisplay.php?f=20)
-   -   Сдвиг элементов массива (http://www.flasher.ru/forum/showthread.php?t=46943)

Монах 18.07.2003 15:18

Сенкс большое! Вот этого совсем не знал. А где можно подробнее почитать обо всем, чего можно в .htaccess пихать?

А то я до сих пор в .htaccess только кодировками, 404-й и CharsetRecodeMultipartForms пользовался... :rolleyes:

Да, кстати, а вот можно ли в файл записать массив, чтоб он как массив хранился, а не как набор строчек?

Оно, конечно, можно для записи цикл организовать типа

.........
for ($i=0;$i<count($text);$i++) {
fwrite($fp, $text[$i]);
}
.........

но потом данные все равно обратно в массив кидать...

nagash 18.07.2003 15:38

эм...
ну сам подумай...
что есть фаил?
правильно...
набор строчек...
а вот как ты их оттуда достанешь это уже твоё дело
=)

Монах 18.07.2003 16:31

Ну почему же... Можно и так записать:

$filename = $path;
$fp = fopen($filename, 'w');
fwrite($fp, '<?');
fwrite($fp, "\n");
fwrite($fp, '$buka-byaka1 = ');
fwrite($fp, $buka-byaka1);
fwrite($fp, ';');
fwrite($fp, "\n");
fwrite($fp, '$buka-byaka2 = ');
fwrite($fp, $buka-byaka2);
fwrite($fp, ';');
fwrite($fp, "\n");
fwrite($fp, '?>');
fclose($fp);

Писать, естественно, в PHP-шный файл... Тогда и при инклюде получим сразу готовые переменные со значением... Вот я и спрашивал, как ТАКИМ оборазом массив записать, чтобы потом этот массив сразу и получить...

---------------------------------

Да, еще вот вопрос из области "а оптимально ли"... Допустим, затянул я базу данных из текстовика в скрипт, удалил таким вот образом подписчика:
if (in_array($UserEmail,$text,TRUE)) {
$i = array_search ($UserEmail, $text);
array_splice ($text, $i, 1);
}

... ПЕРЕзаписал обратно в текстовик:
for ($i=0;$i<count($text);$i++) {
fwrite($fp, $text[$i]);
fwrite($fp, "\n");

Все зашибись, в результате нужный подписчик из базы удален, только вот одно меня смущает.. Ну пятьдесят подписчиков, ну сто, но когда их количество за полторы-две штуки перевалит... Оптимален ли такой способ ведения базы данных сабскрайберов?

nagash 18.07.2003 16:48

MySQL тебя спасёт...
для любителей файлов в ПХП 5.0++ поддержка по умолчанию SQLite
впринципе поддержка и в 4++ версиях есть но она по умолчанию отключена...
хочешь - заморочийся включи...
будет тебе текстовая база с запросами как в базе данных...

Монах 18.07.2003 16:56

Э-хе-хе... Да это понятно...

Знал бы я базы данных, не колбасился бы с файлами. :D Учить то учу понемногу, но щас надо быстренько набросать подписчиков, чтоб дело шло...

Хорошо, а подробнее о недостатках этих текстовиков? Я посмотрел, база данных на 2 штуки людей занимает в районе 40 килобайт... Какие могут возникнуть проблемы, если эти 40 килобайт туды-сюды таксать? Какие могут быть сбои? НЕ может ли так случится, что пока скрипт записывает в файл одного юзера, второй вызывает файл, получает его пустым, пишет в него свой адрес и перезаписывает поверх только со СВОИМ адресом, а вся база "тю-тю"? Или иные какие-то проблемы?

Pr0Head 18.07.2003 17:11

Может.

Для этого есть функция flock

Donal 18.07.2003 17:13

насчёт вставки в первый элемент массива
 
вообще говоря, есть функция array_unshift - добавляет элемент(ы) в начало массива, сдвигая остальные.
потом убираешь последний...

nagash 18.07.2003 17:14

MySQL намного проще чем ты думаешь...
да я щас и SQLite глянул тоже очень просто...
так что нет смысла устраивать себе мороку с файлами...

а если всё таки файлы - прохед прав... юзай http://www.php.net/flock

nagash 18.07.2003 17:16

Donal
а зачем ему это надо? =)
где написано что ему надо именно в начало вставить и последний элемент стереть?
внимательнее надо быть...

Donal 18.07.2003 17:31

Re: Сдвиг элементов массива
 
Цитата:

Оригинал написал(а) Монах
Есть массив на, скажем, 10 элементов. Как сделать так, чтобы при записи новых данных в первую ячейку, элементы сдвигались на один... Тоесть тот, что был до перезаписи в первой ячейке, сдвигался во вторую, второй - в третью и т.л. Последний, 10-й, соответственно, пропадает.

обращу отдельное внимание на
при записи новых данных в первую ячейку и
Последний, 10-й, соответственно, пропадает.

конечно, можно сказать, что первая ячейка не является началом массива, а началом является нулевая ячейка, но...


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

Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.