大きなJSON文字列をクッキーに保存する方法は?私はクッキーのみを使用しなければなりません、私の場合、セッションはオプションではありません。誰もが文字列を圧縮し、クッキーに格納し、それを正常に取得するためのサンプルコードを投稿できますか?ありがとう。PHPを使用して大きなJSON文字列をクッキーに保存する方法
答えて
データを圧縮することは素晴らしい考えではありません。むしろ、私はそれをデータベースに保存し、データベースエントリのIDをクッキーに保存します。 IDでの改ざんも可能ですが、データの改ざんを防ぎます。セッションを使用する方が良いでしょうし、これを排除します。
クッキーにデータを格納することを主張しかし、もし、あなたはgzcompress()
、gzdeflate()
またはgzencode()
のいずれかを使用してデータを圧縮することができます。これらはすべて圧縮を提供します。 gzdeflate()
は、スペース効率が最も良いことがわかり、問題に最適な選択肢になります。そして
$compressedJSON = gzdeflate($json, 9);
setcookie('json', $compressedJSON);
はそれが
$compressedJSON = $_COOKIE['json'];
$json = gzinflate($compressedJSON);
あなたのデータは、4Kの制限内に収まるようにするために圧縮が十分になる場合でも、覚えておいて読むために、あなたは最終的に超える可能性があり、そのすべきJSONの量格納する必要があるデータが増加します。
代わりにデータベースを使用することをお勧めします。
gz * function zlib拡張を有効にする必要があることに注意してください。デフォルトでは、Windows以外のマシンでは使用できません。 –
このようなデータをDBに保存するのが最善の方法です。 – Dev
これは何か?
エンコード
$sJSON = json_encode($sSomeJSONData);
setcookie('json', $sJSON);
デコード
$sJSON = json_decode($_COOKIE['json']);
--- EDIT ----
ゴーgzipやそれが最も理にかなっているデータベースを使用するためのクリスチャンの答えと...しかし、データベースを使用できない場合は、セッションを手動で構築することができます。
すべてのセッションは、技術的にはWebツリーの外部に格納されたデータを含むテキストファイルです。 uniqid()
のようなものを使用してそのプロセスを複製して、「セッション名」を生成することができます。
"セッション名"をファイル名として使用して、特定のディレクトリにテキストファイルを作成し、 "セッション名"をクッキーに保存します。
そして、単純にテキストファイルを見つけるために、クッキー内のデータを使用して、あなたのプログラムとテキストファイル間でデータを転送するserialize()
、unserialize()
とfile_put_contents()
、file_get_contents()
を使用しています。
いくつかの健全性チェックとハイジャック防止が必要ですが、原則は健全です。
情報量が多い場合は、代わりにローカルストレージを使用することを検討してください。すべてのブラウザがローカルストレージをサポートしているわけではありませんが、すべてのブラウザがローカルストレージをサポートしています。 Cookieが大きすぎると、httpエラーが発生する危険性があります。
サイズの問題がなく、すべてのリクエストで大きなクッキーを渡す必要がないので、クッキーに一意のIDを保存するだけです。次に、一意のIDを使用して、memcache、mysql、または他のサーバー側のストレージから大きなデータオブジェクトを取得できます。セッションは必要ありません。
あなたは私たちがどのくらい大きなクーリーを保存することができるか教えてください....私たちは500単語のようなクッキーを保存できますか? – StaticVariable
クッキーは最大4Kまでです。クッキー全体(メタデータ+データ)です。それに近い場所にいて、アイテムをローカルに保管する必要がある場合は、ローカルストレージを使用する必要があります。現代のブラウザはすべてそれをサポートしています。 –
- 1. PHPを使用してJSON文字列を解析する方法
- 2. PHP:情報をクッキーに保存する安全な方法は?
- 3. 安全な文字列をAndroidに保存する方法は?
- 4. クッキーを使用してJavaに文字列を読み取る
- 5. UTF-16文字をC#で文字列として保存する方法は?
- 6. iPhoneにjsonデータを保存する:jsonの文字列をそのまま保存VSをオブジェクトとしてjsonから作成し、NSCoding + NSKeyedArchiverを使用
- 7. Pythonを使用して文字列の最初の大文字でない文字を見つける方法
- 8. JavaScriptを使用して数字の大きい数字を文字列としてフォーマットする方法
- 9. 大きなファイルを保存して管理する方法
- 10. PHPでXMLコードを文字列として保存します
- 11. PHPを使ってクッキーにデータを保存するには?
- 12. MVVMを使用してWPFでTextBoxを大きな文字列にバインドする
- 13. Javascriptのみを使用して大きなJSON文字列をS3にダンプする
- 14. javascriptを使用してブラウザにクッキーを保存するには
- 15. バックボーンモデルとコレクションをJSON文字列に保存する
- 16. PHP/JSでクッキーを使って投票を保存する方法
- 17. "\ n"文字列をPrintWriterを使用してテキストに保存するときに改行しない
- 18. データベースとクッキーを使用せずにクッキーライクなデータを保存する方法は?
- 19. JSON.parse()を使用してJSON文字列を解析する方法
- 20. C#を使用してJSON文字列をデコードする方法は?
- 21. JSON.parseを使用してJSON.parseを使用してJSON文字列をAPI URLに変更する方法
- 22. PHP |ブール値をクッキーに保存する
- 23. MATLABを使用して文字列を.txtファイルに保存する
- 24. LINQオブジェクトをJSON文字列にシリアル化する - 巨大な文字列
- 25. この文字列をXMLファイルに保存する方法は?
- 26. Delphiで文字列を.txtファイルに保存する方法は?
- 27. オブジェクトのフィールドを文字列に保存する方法
- 28. javascript(またはクッキーを配列として使用)の配列にクッキーを保存する
- 29. 場所をブラウズして、クッキーにレールで保存する方法
- 30. Delphi 2007を使用してBase64文字列をバイナリとしてディスクに保存
http://php.net/manual/en/features.cookies.phpを読んだことがありますか? – Jon
はい、私はそれを読んでいます。 – Dev
http://stackoverflow.com/questions/4225030/jquery-save-json-data-object-in-cookie – NAVEED