ホームページ >バックエンド開発 >PHPチュートリアル >PHPの配列変換文字列関数、thinkphp、json_encodeを使用して中国語を保存すると、バックスラッシュが消えます
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、)
)
保存したら消えたような気がしますが、 $ 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 '';