ホームページ >バックエンド開発 >PHPチュートリアル >キャッチされない例外「Exception」とメッセージ「SimpleXMLElement のシリアル化」
関数 deal_taobao_data($data){
$data = シリアル化($data);
$data = str_replace('O:16:"SimpleXMLElement"', 'a', $data);
$arrstr = unserialize($data);
[@attributes] => 配列 > true
)
)
配列に変換します
ローカルでテストできますが、アップロード後にエラーが報告されます:
致命的なエラー: キャッチされない例外 'Exception 'メッセージ「'SimpleXMLElement' のシリアル化
は許可されていません」/web/taabao.php:328
スタック トレース:
#0 /web/taabao.php(328): Serialize(Object(SimpleXMLElement))
#1 /web /taabao.php(50): deal_taabao_data(Object(SimpleXMLElement))
#2 {main}
/web/taabao.php の 328 行目にスローされます
この問題の根本原因を知っている人はいますか?
ディスカッション(解決策)への返信
ローカルテストは大丈夫ですか? ? ?
冗談です、私はあなたを責めません
テストは確かに正しいです。 。 。
ローカルでテストすることは可能ですか? ? ?
冗談です、あなたを責めるつもりはありません
完全な配列が返されました。
サンプルデータを投稿してください
サンプル データを投稿する
SimpleXMLElement オブジェクト
(
[item_cats] => SimpleXMLElement オブジェクト
(
) [@attributes] => 配列
> 配列
[cid] => 50013865
[is_parent] => ; false
[名前] => 50013868
[parent_cid] => 50013864
[cid] " [parent_cid] => 50013864
)
[3] => SimplexmLelementオブジェクト
(
[CID] => 50013869 SimplexmLelementオブジェクト
(
[CID] => 50013870 SimplexmLelementオブジェクト
(
[CID] => 50013871 SimpleXMLElement オブジェクト
(
[cid] => 50013875
[is_parent] => false
[name] => is_parent] => false
parent_cid] => 50013864
([cid] => )
)
)
)
1
ローカル テストで正常に返されたコード (一部省略):
Array
(
[item_cats] => Array
(
[@attributes] => Array
[item_cat] => =>[3] => [is_parent] =>
1. SimpleXMLElement をシリアル化できません
キャッチされない例外 'Exception' と、「'SimpleXMLElement' のシリアル化は許可されていません」というメッセージが表示されます
2. たとえそれが可能であっても、
echo Serialize(array(1)); によって、
a:1: {i:0;i:1;}
あなたがやったような置換ではありません
1. SimpleXMLElement をシリアル化できません
キャッチされない例外 'Exception' とメッセージ「'SimpleXMLElement' のシリアル化は許可されていません」
2. たとえそれができたとしても、
echo Serialize(array(1));
a:1:{i:0;i:1;}
あなたがやったように置き換える代わりに
関数 deal_taobao_data($data){
$arrstrs=json_encode($data);$arrstr;