大きな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. elasticsearchに大きなJSON文字列を保存する方法は?
- 2. Javascript:URLに大きなJSONオブジェクト/文字列を使用する
- 3. javascriptにphp文字列を保存する方法
- 4. IOS JSON文字列をメモリに保存してロードする方法
- 5. 配列を文字列PHPとして保存するには?
- 6. Gsonを使用して大きなJson文字列を作成する正しい方法
- 7. PHPを使用してJSON文字列を解析する方法
- 8. PHP:情報をクッキーに保存する安全な方法は?
- 9. codeigniterを使用してデータベースクエリから文字列を保存する方法
- 10. JSONに文字列を保存Qt
- 11. 'utf-8'エンコーディングを使用してto_csvを使用して文字列を保存できるので、pandas to_exelを使用して 'utf-8'形式の文字列を保存する方法(to_csvは.csvとして保存できます)
- 12. req.bodyを使用してJSON配列データをmongooseに保存する方法は?
- 13. 安全な文字列をAndroidに保存する方法は?
- 14. PHPを使用してjson応答のデータを保存する方法
- 15. Node JS、Base64文字列をJSON文字列に正しく保存する方法は?
- 16. クエリ文字列を使用せずにWrifを使用してUriTemplateでJSON文字列を渡す方法
- 17. .netコアを使用してクッキーにJWTを保存する方法
- 18. クッキーを使用してJavaに文字列を読み取る
- 19. 大規模なJSON文字列を作成するPHP
- 20. PHPを使ってクッキーにデータを保存するには?
- 21. SwiftyJSONを使用してJSONデータを保存する方法
- 22. UTF-16文字をC#で文字列として保存する方法は?
- 23. Swiftを使用して大規模なJSONをレルムに保存する3
- 24. ofn.lpstrFileを文字列に正しく保存する方法は?
- 25. Pythonを使用して文字列の最初の大文字でない文字を見つける方法
- 26. JavaScriptを使用して数字の大きい数字を文字列としてフォーマットする方法
- 27. このJSON文字列をAPIビューモデルに保存する方法は?
- 28. JPAを使用してmySqlに文字列配列を保存する
- 29. スウィフトのコアデータに文字列配列を保存する方法
- 30. PHP/JSでクッキーを使って投票を保存する方法
http://php.net/manual/en/features.cookies.phpを読んだことがありますか? – Jon
はい、私はそれを読んでいます。 – Dev
http://stackoverflow.com/questions/4225030/jquery-save-json-data-object-in-cookie – NAVEED