我在一个用PHP 5/cake编写的web应用程序中有一个奇怪的行为。问题是:我正在调用API从MySql返回XML格式的数据。如果总数据量很小,则一切正常。
但是当结果包含数千个数据元素(时间戳/值对)时,xml序列化函数无法返回xml响应。它实际上看起来像线程死了,也许是由于一个异常?
这是代码-这是app/views/analytic/ajax。ctp,在我从数据库得到数据后:
<?php
header("Content-Type: text/xml");
e('<?xml version="1.0"?>');
echo 'before serialize';
e($xml->serialize2($msg, array('format' => 'tags')));
echo 'after serialize';
e($this->element('sql_dump'));
?>
我没有看到'after serialize'的输出
$xml->serialize()是cake/views/helpers/xml.php
的一部分function serialize($data, $options = array()) {
$options += array('attributes' => false, 'format' => 'attributes');
$data =& new Xml($data, $options);
return $data->toString($options + array('header' => false));
}
看起来是这一行导致了问题:
$data =& new Xml($data, $options);
我到处找这个问题都没有找到。
任何帮助都将非常感激!
Thx
奥弗
问题解决了-我将php.ini中的memory_limit从32M增加到512M