我在Zend应用程序中使用这段代码得到了这个奇怪的错误:
$curl = curl_init(); curl_setopt($curl, CURLOPT_URL, 'www.xyz.com/ab.php'); curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); $data = curl_exec($curl); curl_close($curl); if (!isset($location->country)) { $location = new Zend_Session_Namespace('location'); $xml = new SimpleXMLElement($data); $location->city=$xml->City; }
这是错误,我得到:
Fatal error: Uncaught exception 'Zend_Session_Exception' with message 'session has already been started by session.auto-start or session_start()
当我删除该代码时,一切正常。 有什么想法??
编辑:在进一步调试时,我发现错误不是因为卷曲代码 - 当我分配$ location-> city = $ xml-> City时,它正在出现。 但当我将该行更改为$ location-> city =''。$ xml-> City。''; 它开始工作..........这让我疯了!!!!
答案 0 :(得分:1)
不太确定你的问题是什么,但我可以告诉你,Zend_Http_Client非常好用而且它支持包括CURL在内的多个适配器。
示例:
$http = new Zend_Http_Client(
'url',
$this->options
);
$response = $http->request();
答案 1 :(得分:0)
您的new Zend_Session_Namespace('location');
调用将尝试启动一个新会话,但显然已经启动了一个而不使用Zend_Session调用,因此它会抛出异常。所以检查你的其余代码(和php.ini)以找出你开始那个会话的位置(可能是因为php.ini中的session.auto_start = 1,或某个地方的session_start()调用)并按你看到的那样修复它适合...