2013-01-14 37 views
0

我看过类似的错误,我认为它最有可能是由于BOM字符,但说实话,其他大部分编码是在不同的上下文中我只是不明白它,即时通讯不熟悉肥皂,只是用它来拉动数据,然后在PHP中格式化。Soap问题 - SoapFault异常:[客户端]看起来像我们没有XML文档

我的代码很简单:

$activityClient = xpmClient::getModuleInstance('activity', $remoteSessionId, 'xxx.5pmweb.com'); 
$filter = new stdClass(); 
$count = 300; 
$offset = 0; 
$activityList = $activityClient->getList($filter, $offset, $count); 

现在服务器错误显示:

> PHP Fatal error: Uncaught SoapFault exception: [Client] looks like we got no XML document in xxx/caching.php:59\nStack trace:\n 
\#0 xxx/caching.php(59): SoapClient->__call('getList', Array)\n 
\#1 xxx/caching.php(59): xpmClient->getList(Object(stdClass), 0, '371')\n 
\#2 /xxx/reports.php(296): include('/xxx/...')\n 
\#3 {main}\n thrown in /xxx/caching.php on line 59 

线296上report.php是包括对caching.php文件,该文件的第59行是

$activityList = $activityClient->getList($filter, $offset, $count); 

这工作数月没有问题,所以我不知道什么改变吨ODAY。任何想法如何去除物料清单并仍然将我的数据作为对象存入$activityList,以便我可以访问这些信息?

edit// 

预浸更换不工作,我想这就是因为一旦我调用$ activityList服务器对后一个致命的错误,犯规处理过这么IM试图修复它后的破产,而不是之前。

How would i go about doing __getLastResponse() 

伊夫阅读本手册,但不知道如何构建它,即时通讯相当确信我需要的原因,尝试捕捉我说预浸更换没有工作,但我尝试了一些变化和它什么都不做,即时通讯相当肯定结构是错误的,任何指针或想法?

回答

2

我不知道为什么会BOM导致此,但如果你想要去除BOM在这里你去

function strip_bom($str) { 
    return preg_replace('/^(\x00\x00\xFE\xFF|\xFF\xFE\x00\x00|\xFE\xFF|\xFF\xFE|\xEF\xBB\xBF)/', "", $str); 
} 
+0

感谢您的代码,即时确定它会派上用场,但因为我的服务器在$ activityList运行后正在死亡,它没有得到运行它的机会,请参阅上面的进一步问题并感谢您的回复 – user1547410

0

你正在使用的SOAP服务器坏了。你是否手动检查过试图拨打它?

相关问题