我看过类似的错误,我认为它最有可能是由于 BOM 字符,但老实说,大多数其他编码都在不同的上下文中,我只是不明白,我对肥皂不太熟悉,只是用它来拉数据然后在 php.ini 中格式化。
我的代码很简单:
$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);
这工作了几个月没有问题,所以我不确定今天发生了什么变化。任何想法如何剥离 BOM 并仍然将我的数据$activityList
作为对象放入以便我可以访问信息?
edit//
preg 替换不起作用,我想那是因为一旦我调用 $activityList,服务器就会给出一个致命错误并且在那之后不处理任何东西,所以我试图在它坏掉之后而不是之前修复它。
How would i go about doing __getLastResponse()
我已经阅读了手册但不明白如何构建它,我很确定我需要一个 try catch,因为我说 preg replace 不起作用但我尝试了一些变化并且它什么也没做,我很确定结构是错误的,任何指针或想法?