Soap问题-SoapFault异常:[Client]看起来我们没有XML文档

Soap问题-SoapFault异常:[Client]看起来我们没有XML文档,soap,encoding,php,byte-order-mark,Soap,Encoding,Php,Byte Order Mark,我看过类似的错误,我认为最有可能是由于一个BOM字符,但老实说,大多数其他编码是在不同的上下文中,我只是不理解它,我不太熟悉soap,只是使用它来提取数据,然后在php中格式化 我的代码很简单: $activityClient = xpmClient::getModuleInstance('activity', $remoteSessionId, 'xxx.5pmweb.com'); $filter = new stdClass(); $count = 300; $offset = 0; $ac

我看过类似的错误,我认为最有可能是由于一个BOM字符,但老实说,大多数其他编码是在不同的上下文中,我只是不理解它,我不太熟悉soap,只是使用它来提取数据,然后在php中格式化

我的代码很简单:

$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
report.php
上的第296行包含了
caching.php
文件,该文件的第59行是

$activityList = $activityClient->getList($filter, $offset, $count);
这几个月都没有问题,所以我不知道今天发生了什么变化。您知道如何剥离BOM表并将数据作为对象放入
$activityList
,以便访问信息吗

edit//
preg replace不起作用,我想这是因为一旦我调用$activityList,服务器就会出现致命错误,之后不会处理任何内容,因此我尝试在它损坏后而不是之前修复它

How would i go about doing __getLastResponse()

我读了手册,但不明白如何组织它,我很确定我需要一个尝试捕捉,因为我说preg replace不起作用,但我尝试了一些变体,但它没有任何作用,我很确定结构是错误的,有任何指针或想法吗?

我不知道为什么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 );
}

您正在使用的Soap服务器已损坏。您是否手动检查并尝试调用它?

谢谢您的代码,我相信它会派上用场,但由于我的服务器在$activityList运行后即将死亡,因此没有机会运行它,请参阅上面的进一步问题,并感谢您的回复