下記のようなjsonファイルをfile_get_contentsで読み込むとします
data.jsonの記述が1MBあったとします
これをfile_get_contents("var~/data.json")で読み込むと1MB読み込みをかけると思うのですが
必要なデータのみを引っ張ってこれれば1MBから1kbにすることはできるのでしょうか?
どのような考え方であれ、1度1MBの読込が発生したのち、
必要な1kbの払い出しをするという流れになると思いますが
1MBの読込を発生させず1kbで処理する方法はあるんでしょうか
<?php echo file_get_contents("var~/data.json");//すべてのデータ1MBを読み込むのではなく必要なデータだけを最初から取ることができれば1kbできそうですが、すべてを読み込んだのち結果を返すこととなると思うので不可能か ?>
data.json 1MBと仮定 {"res": {"blogData":[ { "id":"0001", "title":"サンプル01", "day":[ { "year":"2015", "month":"03", "_day":"31" } ], "author":"fantmsite", "tag":[ "ブログ" ], "report":"ブログ内容サンプル01" }, { "id":"0002", "title":"サンプル02", "day":[ { "year":"2015", "month":"04", "_day":"01" } ], "author":"fantmsite", "tag":[ "ブログ" ], "report":"ブログ内容サンプル02" } ]} }
> file_get_contents("var~/data.json")で読み込むと1MB読み込みをかけると思う
1Mのファイルを1Kだけ読むということですか?
jsonの場合、不完全なデータにしかならないと思いますが・・
私の考え方がおかしいかもしれませんが、やりたいことは理解できますでしょうか?
1kbだけ読み込むのではなく、必要なデータだけを最初から読み込みたいのです
1kbを読むというよりも必要なjsonデータを取り出す形です
必要なデータを取り出すにはPHPなりで必要な個所だけ出力しますよね?
しかしこの流れだと
1MBのファイルにアクセス→必要な個所を出力という流れになります
最初から必要な個所にアクセスできれば1kbで済むのかという考えです
これはファイルが壊れる事が無い、前提の質問です
たとえるならアクセスした際に
data.json 1MBと仮定しfile_get_contentsした時点で
data2.jsonに下記が存在していたとして下記を読み込むのと同じにできないかと考えました
data2.json 1kbと仮定
{"res":
{"blogData":[
{
"id":"0001",
"title":"サンプル01",
"day":[
{
"year":"2015",
"month":"03",
"_day":"31"
}
]
]}
}
回答1件
あなたの回答
tips
プレビュー