質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

解決済

1回答

763閲覧

file_get_contentsで全てのデータを拾わず特定の個所を拾うことはできないのか

phpa

総合スコア4

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/11/18 01:33

編集2021/11/18 01:43

下記のような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" } ]} }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

yambejp

2021/11/18 01:46 編集

> file_get_contents("var~/data.json")で読み込むと1MB読み込みをかけると思う 1Mのファイルを1Kだけ読むということですか? jsonの場合、不完全なデータにしかならないと思いますが・・
phpa

2021/11/18 03:21

私の考え方がおかしいかもしれませんが、やりたいことは理解できますでしょうか? 1kbだけ読み込むのではなく、必要なデータだけを最初から読み込みたいのです 1kbを読むというよりも必要なjsonデータを取り出す形です
phpa

2021/11/18 03:23

必要なデータを取り出すにはPHPなりで必要な個所だけ出力しますよね? しかしこの流れだと 1MBのファイルにアクセス→必要な個所を出力という流れになります 最初から必要な個所にアクセスできれば1kbで済むのかという考えです これはファイルが壊れる事が無い、前提の質問です
phpa

2021/11/18 03:27 編集

たとえるならアクセスした際に data.json 1MBと仮定しfile_get_contentsした時点で data2.jsonに下記が存在していたとして下記を読み込むのと同じにできないかと考えました data2.json 1kbと仮定 {"res": {"blogData":[ { "id":"0001", "title":"サンプル01", "day":[ { "year":"2015", "month":"03", "_day":"31" } ] ]} }
guest

回答1

0

ベストアンサー

JSONファイルから必要な箇所だけ読み込むというのは合理的ではありません
全体を読んでフィルターして必要箇所だけ抽出してください
もしくはテキストファイルで管理せずにDBにデータ登録しておき検索条件を
あたえて必要データをJSON化して出力してもらうのが妥当でしょう

投稿2021/11/18 03:31

yambejp

総合スコア116734

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

phpa

2021/11/18 03:41

>JSONファイルから必要な箇所だけ読み込むというのは合理的ではありません そもそもfile_get_contentsでできるのですか?
yambejp

2021/11/18 03:42

> file_get_contentsでできるのですか? 質問の意味がわかりませんが、たぶんできません
phpa

2021/11/18 03:44

了解しました どうもありがとうございました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問