ホームページ >バックエンド開発 >PHPチュートリアル >PHPの配列変換文字列関数、thinkphp、json_encodeを使用して中国語を保存すると、バックスラッシュが消えます

PHPの配列変換文字列関数、thinkphp、json_encodeを使用して中国語を保存すると、バックスラッシュが消えます

WBOY
WBOYオリジナル
2016-06-23 13:43:491494ブラウズ

PHPの配列変換文字列関数、thinkphp、json_encodeを使って中国語を保存すると、バックスラッシュが消えました
元々はこれでした
[{"title":"u5173u6ce8u65f6u56deu590d","url":"/index.php?g=User* * **"}]
結果はこうなりました
[{"title":"u5173u6ce8u65f6u56deu590d","url":"/index.php?g=User****"}]
中国語であり、 json_decode で処理されており、データベースに保存するときにバックスラッシュはありません。

PHP バージョン 5.2、Apache 2.2

変数の型を保存できる配列変換文字列があったことを覚えています。それが何と呼ばれていたか忘れました


ディスカッションに返信(解決策)

Scattered
Serialize($array);
unserialize($array);
驚いたことに、それは見つかりました

Thinkphp の問題ですか?
PHP の json_encode を直接使用する場合、バックスラッシュはありません。

うーん
[タイトル] = & gt; 返信
[url] = & gt; /Index.php?g=User ****
)
)

が原因で、傾斜が処理されます。

データベースに保存する前に、データがストリップスラッシュのように処理されているかどうかを確認してください

スコアを受け入れました 元の投稿者におめでとうございます

データベースに保存する前に、データがストリップスラッシュのように処理されているかどうかを確認してください

よくわかりません、処理する必要があります。

どこに設定できますか?

json_decode を使用していますが、データベースに保存するとバックスラッシュが消えます

ローカルでは動作しますが、にアップロードすると動作しません。構成は同じです

ローカル PHP 5.5

サーバー PHP 5.2、
代わりにシリアライズ関数を使用してください、
返された文字列と配列変数の型は変更されずに保存されます


これは Thinkphp の問題ですか?
PHP の json_encode を直接使用する場合、バックスラッシュはありません。

うーん
[タイトル] = & gt; 返信 [url] = & gt; /Index.php?g=User ****

)

)


保存したら消えたような気がしますが、 $ db- >save(json);

連絡先の分離に使用されます

save はデータベースに保存されるため、「u5173u6ce8u65f6u56deu590d」内の単語をエスケープする必要はありませんか? TPがやってくれますか?


save はデータベースに保存されるので、「u5173u6ce8u65f6u56deu590d」内の単語をエスケープする必要はありませんか? TPがやってくれますか?


わかりました、これは必要ですか?
str_replace("/\/","\\",json)

データベースに書き込むときにエスケープする必要がありますか?
はい、エスケープする必要があります。データベースに書き込むときは特殊文字をエスケープします

はい、データベースに書き込むときは特殊文字をエスケープする必要があります

そうですね、変数の値が無視される限り、以前は ASP を使用していました。データベースに書き込むことができます。わかりました

投稿していただきありがとうございます

echo '<meta http-equiv="content-type" content="text/html; charset=utf-8">';$arr = array(    array(        'title' => '关注时回复',        'url' => '/index.php?g=User****'    ));$str = json_encode($arr); //echo $str.'<br>';echo '<pre class="brush:php;toolbar:false">';print_r(json_decode($str,true));echo '
';

ASP では特殊文字ではありませんが、' はエスケープする必要があります
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。