array(2) {
["header"]=>
string(267) "HTTP/1.1 200 OK
サーバー: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=BDED717E8585DDA55A47EA1822C00E80; Path=/sdkproxy/; Ht tpのみ
Content-Type: text/html;charset=UTF-8
Content-Language: en-GB
Content-Length: 103
Date: Sat, 24 Aug 2013 02:38:00 GMT
接続: close"
[" body"]=>
string(103) "
}
は Web サーバーの戻り値です
simplexml_load_string を使用して解析し、false を返します。驚きました
['body'] の内容がどのように変換されるか配列形式に変換します
$xml_string = "<?xml version=\"1.0\" encoding=\"UTF-8\"?><response><error>0</error><message>-1100.0</message></response>"; $xml = simplexml_load_string($xml_string); //对象转换成数组,方便引用 $arr = (array)$xml; var_dump($arr);
$ar = simplexml_load_string($data['body'])
;私はまだそれほど上手ではありません この低レベルの間違いをしてください
あなたがどのような高レベルの間違いを犯すかわかりません
$s = '<?xml version="1.0" encoding="UTF-8"?><response><error>0</error><message>-1100.0</message></response>';$xml = simplexml_load_string($s);print_r($xml);
[エラー] => 0
[メッセージ] => - 1100.0
)
どのような高レベルの間違いを犯すかわかりません 高度なエラー
$s = '<?xml version="1.0" encoding="UTF-8"?><response><error>0</error><message>-1100.0</message></response>';$xml = simplexml_load_string($s);print_r($xml);
[エラー] => 0
[メッセージ] => -1100.0
)
問題ここで bool(false) を返すということです
受け取ったデータのシリアル化された値を投稿します
echo Serialize($data);
結果を投稿します
を投稿します受信したデータのシリアル化された値
echoserialize($data)
結果を投稿します
a:2:{s:6:"header";s :267:"HTTP/1.1 200 OK
サーバー: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=96B4D5E802AEBBE6A1F92824C576690B; Path=/sdkproxy/; HttpOnly
Content-Type: text/html;charset=UTF-8
コンテンツ-言語: en-GB
Content-Length: 103
日付: Sat, 24 Aug 2013 03:22 :14 GMT
接続: close";s:4:"body";s:103:"
データの問題です
$s = 'a:2:{s:6:"header";s:267:"HTTP/1.1 200 OKServer: Apache-Coyote/1.1Set-Cookie: JSESSIONID=96B4D5E802AEBBE6A1F92824C576690B; Path=/sdkproxy/; HttpOnlyContent-Type: text/html;charset=UTF-8Content-Language: en-GBContent-Length: 103Date: Sat, 24 Aug 2013 03:22:14 GMTConnection: close";s:4:"body";s:103:"<?xml version="1.0" encoding="UTF-8"?><response><error>0</error><message>-1100.0</message></response>";}';$d = unserialize($s);$xml = simplexml_load_string(trim($d['body']));print_r($xml);
[error] => 0
[message] => -1100.0
)
データを取得したときに、きれいに切り取られていませんでした。
http データヘッダーとデータ本体の間に「rnrn」があり、それを「rn」でカットします
したがって、データ本体の前に「rn」が残っていると、分析が失敗します
$s = 'a:2:{s:6:"header";s:267:"HTTP/1.1 200 OKServer: Apache-Coyote/1.1Set-Cookie: JSESSIONID=96B4D5E802AEBBE6A1F92824C576690B; Path=/sdkproxy/; HttpOnlyContent-Type: text/html;charset=UTF-8Content-Language: en-GBContent-Length: 103Date: Sat, 24 Aug 2013 03:22:14 GMTConnection: close";s:4:"body";s:103:"<?xml version="1.0" encoding="UTF-8"?><response><error>0</error><message>-1100.0</message></response>";}';$d = unserialize($s);$xml = simplexml_load_string(trim($d['body']));print_r($xml);
[エラー] => 0
[メッセージ] => -1100.0 )
データを取得したときに、きれいにカットされませんでした。
http データヘッダーとデータ本体の間に "rnrn" があり、それを "rn" で切り取っています
つまり、データ本体の前にある "rn" が原因で分析が失敗します
これがまさに理由です、丁寧なご回答ありがとうございます