Читаю данные из 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();
|
|