0

私は同様のエラーを見てきましたが、BOM の文字が原因である可能性が最も高いと思いますが、正直に言うと、他のコーディングのほとんどは別のコンテキストにあり、私はそれを理解していません。データを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

296行目以降report.phpはファイルのインクルードで、caching.phpそのファイルの59行目は

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

これは何ヶ月も問題なく機能したので、今日何が変わったのかわかりません. BOM を取り除き、データを$activityListオブジェクトとして取得して、情報にアクセスできるようにする方法はありますか?

edit//

$ activityListを呼び出すと、サーバーは致命的なエラーを出し、その後何も処理しないため、以前ではなく壊れた後に修正しようとしているためです。

How would i go about doing __getLastResponse()

私はマニュアルを読みましたが、それを構造化する方法を理解していません.preg置換が機能しないと言った理由でtry catchが必要だと確信していますが、いくつかのバリエーションを試してみましたが、何もしませんでした.構造が間違っていると確信しています.またはアイデア?

4

2 に答える 2

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 );
}
于 2013-01-14T15:23:23.377 に答える
0

使用しているSoapサーバーが壊れています。手動で呼び出して確認しましたか?

于 2013-01-15T01:33:15.240 に答える