Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> парсинг большого xml файла с помощью php 
:(
    Опции темы
lasalexx
  Дата 15.7.2009, 17:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 19.7.2004
Где: Tbilisi

Репутация: 1
Всего: 1



Читаю данные из mysql и передаю эти данные клиенту в виде xml файла. Конечный размер xml примерно 6мб.

Содержымое передаю по частям. На локальном сервере всё ok, но как только загружаю php на сервер, при большом количестве информации, сервер выдаёт ошибку. Что может быть не так?

Код

define('CHUNK_SIZE', 100);

$query='SELECT * FROM `tbl`';
$res=mysql_query($query.' LIMIT 0,'.CHUNK_SIZE,$myiden) or die(mysql_error());

$str='';
$numr=mysql_num_rows($res);

header("Content-type: text/xml");
header("Content-Disposition: attachment; filename=db.xml;");
header("Accept-Ranges: bytes");
header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
header('Pragma: public');

if ($numr>0){
    $str='<?xml version="1.0" encoding="UTF-8"?>
<cars>
    ';
    $p=1;
    while ($numr>0)
    {
    $k=0;
    while ($row=mysql_fetch_assoc($res)){
        $str=$str.'<car id="'.$row['id'].'">
        ';
        foreach ($row as $i=>$e){
            $str=$str.'<'.$i.'>'.stripslashes($e).'</'.$i.'>
    ';
            }
        $str=$str.'</car>
';
        $k++;
        }
    mysql_free_result($res);
    
    echo $str;
    @ob_flush();
    @flush();
    $str='';
    $st=$p*CHUNK_SIZE;
    $res=mysql_query($query.' LIMIT '.$st.','.CHUNK_SIZE,$myiden) or die(mysql_error());
    $numr=mysql_num_rows($res);
    $p++;
    }

    $str=$str.'</cars>';
    }

echo $str;
@ob_flush();
@flush();

mysql_free_result($res);
mysql_close();
exit();

PM MAIL WWW ICQ MSN   Вверх
patap
Дата 15.7.2009, 17:24 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



ты лучше бы для начала ошибку показал


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
lasalexx
Дата 15.7.2009, 21:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 19.7.2004
Где: Tbilisi

Репутация: 1
Всего: 1



Цитата

Error 500!

/data3.php
Internal Server Error! 

PM MAIL WWW ICQ MSN   Вверх
patap
Дата 15.7.2009, 23:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 893
Регистрация: 7.5.2005
Где: Украина, Зп

Репутация: 26
Всего: 40



и думаю логи нужно тоже посмотреть ))


может проблема в хидерах

Это сообщение отредактировал(а) patap - 15.7.2009, 23:56


--------------------
На боку кобура болталась, сзади шашка отцовская звякала. 
Впереди меня все хохотало, а позади все плакало (с)
PM MAIL ICQ   Вверх
Ипатьев
Дата 16.7.2009, 08:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2232
Регистрация: 5.7.2009

Репутация: 28
Всего: 37



Непонятно, при чем здесь парсинг.
Парсинг - это разбор файла. а здесь обычная отдача текста, которая ничем не отличается от работы любого другого пеп скрипта, который читает данные из базы и выдает их в браузер. 
Зачем только их предварительно накапливать в памяти, все 6 мегабайт - для меня загадка.
PM MAIL   Вверх
lasalexx
Дата 16.7.2009, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 192
Регистрация: 19.7.2004
Где: Tbilisi

Репутация: 1
Всего: 1



Ипатьев
Цитата

Зачем только их предварительно накапливать в памяти, все 6 мегабайт - для меня загадка. 

Все 6мб вместе не получается. Поэтому выдаю информацию по частям. Но всё равно не получается :(
PM MAIL WWW ICQ MSN   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0755 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.