gerkon

gerkon
Рейтинг
40
Регистрация
21.10.2005

Всегда пожалуйста ;)

Seompson, отписал Вам в ICQ. Если правильно понял - ничего сложного там нет.

Не за что :) Обращайтесь в личку - с такими вопросами всегда помогу ;)

В таких файлах надо несколько раз декодировать - вложенные уровни там. Сейчас поищу что у меня есть на данную тему.

у меня допустим в таблице 10 туров, у каждого свои даты и стоимость. Как сделать глобальный запрос на все туры, а потом в правильном месте выводить правильные данные?

shoroop, насколько я понимаю у Вас в таблице есть ещё и параметр id?

Тогда:

$result = mysql_query("SELECT id, date,price FROM bustours");

while ($myrow = mysql_fetch_array($result))

{

$info[$myrow['id']]['date'] = $myrow['date'];

$info[$myrow['id']]['price'] = $myrow['price'];

}

Ну а потом в нужном месте например для тура с id = 4 вставляем

echo $info[4]['date'];

echo $info[4]['price'];

Сами файлы где у Вас лежат?

Более того - попробуйте его на VertrigoServ - я уверен, он не будет выдавать Fatal Error. Это очень удобно тем, что его можно использовать на любых хостингах.

Проблема не в этом. Я уже сталкивался с проблемой

Fatal error: Allowed memory size of 8388608 bytes exhausted (tried to allocate 35 bytes) in C:\Program Files\VertrigoServ\www\FC\replase\replase.php on line 11

раньше, когда парсил файлы партнёрских магазинов. Файл в 5 мегабайт парсился, в 19 мегабайт - выдавал такую ошибку.

Проблема заключается в том, что лимит памяти на один процесс устанавливается хостером - и использовать скрипты, использующие функцию file() с большими файлами не представляется возможным, так как file() читает сразу весь файл в массив и забивает оперативку.

Проблема решается использованием другого пути - вот выкладываю - может кому-нибудь пригодится:

<?php

/**

* @author Gerkon

* @copyright 2008

*/

// Текстовый файл.

$file = "testfile.txt";

// Временный файл, который будет создаваться при работе скрипта.

$tmpfile = "testfile2.txt";

// Проверяем файл на доступность, чтобы не плодить мегабайты error_log'a

if (!file_exists($file))die("Исходного файла не существует!!");

// Открываем файл

$handle = fopen($file, "r");

// Создаем временный файл

$temp = fopen($tmpfile,"w+");

// До конца файла

while (!feof($handle)) {

// Читаем каждуюстроку

$buffer = fgets($handle, 14096); // Строка не должна быть больше 14096 байт! Если больше - меняем значение!

// Проверяем есть ли <H1> в начале и </H1> в конце

if (eregi("^<h1>",$buffer) && !eregi("</h1>",$buffer))

// Тогда добавляем закрытый тег

$buffer = str_ireplace("\n","</h1>\n",$buffer);

// И записываем строку во временный файл

fputs($temp,$buffer);

}

// Закроем дескрипторы файлов

fclose($handle);

fclose($temp);

// Удалим старый файл

unlink($file);

// Переименуем новый файл

rename($tmpfile,$file);

echo "Операция успешно выполнена!";

?>

И всё-таки, если не секрет? Файл очень большой был?

Какого размера файл?

Всего: 176