phpのファイルのファイルの読み込み速度について

このQ&Aのポイント
  • phpのファイルの読み込み速度について調べています。
  • 現在、初めてphpプログラムを組んだサイトを作っています。自分の撮った写真をコメント付きでアップしているウェブサイトで、場所や季節で写真を並び替えられるようなphpプログラムを目指しています。
  • 写真を並び替えるために配列の塊をテキストファイルで保存し、phpファイルで呼び出しています。初めてで詳しい情報が得られませんでしたが、軽いファイル形式で保存する方法があれば教えてください。
回答を見る
  • ベストアンサー

phpのファイルのファイルの読み込み速度について

現在、初めてphpプログラムを組んだサイトを作っています。 内容としては自分の撮った写真をコメント付きでアップしているのですが、 場所や季節でその写真を任意で並び替えられるようなウェブサイトを目指しています。 (チェックボタンなどで新着順、おすすめ順など訪問者が任意で並び替えられるphpプログラム) $food["1"]["item0"]="tokyo"; $food["1"]["item1"]="0001.jpg"; $food["1"]["item2"]="20120430"; $food["2"]["item0"]="oosaka"; $food["2"]["item1"]="0002.jpg"; $food["2"]["item2"]="20120815"; それで写真を並び替えるために上記のような配列の塊が200近くあります。( 上記は例です) 今後1000個以上に増える予定ですのでphpファイルに全部記載すると編集しづらいので 上記の配列の部分だけ別にテキストファイルに記載してrequire_once ("test.txt")で 呼び出すことにしました。ここで質問なのですが、保存するファイルはテキストファイルで よかったのでしょうか? 何分初めてで、ググってもその辺のことが詳しく書いてあるサイトもありません。 通常みなさんはどのようなファイル形式で保存するのでしょうか? できる限り軽い方がいいです。 よろしくお願いします。

  • PHP
  • 回答数2
  • ありがとう数0

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

大量のデータを条件に合わせて取り出したり、並べ替えたりしたいならRDBを使ったほうが結果的に性能が出ると思います。 お手軽に使うとしたらSQLite3を使えば良いと思いますし、多少本格的にやるならMySQLやPostgreSQL、MariaDBを使い、金に糸目をつけないなら商用RDBMSもあります。 あと、RDBではありませんがこういう用途で使うものとして、MongoDBも流行りですね。 「軽い」というのはどういう意味で使っているかよくわかりませんが、RDBを使って適切なindexつければ一定以上のデータに対しての動作は速くなると思います。まぁ、ごく小さなデータを扱っている場合はRDBのファイルを読み書きしたり、RDBMSにつないだりする部分で余計な手間がかかるので逆に遅くなる可能性もありますが、今後容量が増えるならやっておいて損はないでしょう。 とはいえ、SQLなどの知識をみにつけないとRDBは使えないですし、それなりに容量も取るので、今全然速度で困っていないし、追加・削除・アップデートも手書きで十分対応できる範囲というなら、わざわざRDBに手を出す理由も無いかもしれません。一応言っておくと、require_onceすると、PHPが毎回ソースコードを読み込み、解析しないといけないので、RDBに整理整頓されたデータとして入っているのに比べて多少性能を犠牲にすることになります。また、RDBを使うと並び替えやカテゴリー分けの処理をRDBにやらせることで自分でPHPで書くよりも高速になる可能性が高いです。 というわけで、今後容量が増え続けてもそこそこの性能を出したいならRDBを検討してみてください。まぁ、手頃なところでまずはSQLite3を使ってみるところから始めてはどうでしょうか?

その他の回答 (1)

  • thezen5
  • ベストアンサー率84% (27/32)
回答No.2

他の方が書いてるようにDBを使うのが正攻法ですが、テキストでなくphpファイルで配列の状態で書く方が読み込み後の評価、変換処理が省かれるのでやや速いです。 ちなみにrequireの方が速いです。(ただし2度読みしないようなロジックにしてください) 1000以上のレコードはテキストで処理するには多いですが、テキストファイルで管理されてるBBSもあるくらいですから非現実的ともいえないですね。

関連するQ&A

  • 変数に入れたhtmlファイルの表示について

    すいません。php初心者なのですが変数に入れたhtmlの表示で分からない事があります。 $food["0"]["item0"]="y"; $food["0"]["item3"]="2012010101"; $food["0"]["item4"]="k0.txt"; $food["1"]["item0"]="n"; $food["1"]["item3"]="2012010102"; $food["1"]["item4"]="k1.txt"; 以上のようなグループが沢山あるのですが、このグループを任意に削除したり、並び替えたりして 最後に「k0.txt」や「k0.txt」というテキストファイルに記載されたhtmlプルグラムを展開して表示させたいと考えています。($foodの値であるk0.txtと展開したいテキストファイルは同名にしました) グループの削除や並び変えのphpプログラムは出来上がったのですが、最後にk0.txtやk1.txtを どう展開するのかが分かりません。とりあえず以下のようにしてみまして、結果も期待どうりだったのですが、このようなやり方は良くないでしょうか?(txtには膨大なhtmlが記載されているので並び替えたりするプログラム中はtxtファイルが展開された状態のものですよね? 個数が多いためプログラムが重くならないか不安です) 今回ははじめてのプログラムで変数の値とテキストファイルの名前を関連付けたのですが このようなやり方が適切かどうかも不安があります。 よろしければアドバイスいただけると助かります。 <?php $food["1"]["item0"]="n"; $food["1"]["item3"]="2012010102"; $food["1"]["item4"]= @file_get_contents('k1.txt'); echo $food["1"]["item4"]; ?>

    • ベストアンサー
    • PHP
  • phpのエラーが解決できません

    $food["1"]["item0"]="y"; $food["1"]["item1"]="bi"; $food["1"]["item2"]="1300"; $food["1"]["item3"]="20060630"; $food["2"]["item0"]="y"; $food["2"]["item1"]="bi"; $food["2"]["item2"]="1500"; $food["2"]["item3"]="20070630"; $e = "a"; if( $e = "a"){ foreach($food as $key1=>$array){ foreach($array as $key2=>$array2){ if ($food["$key1"]["item2"] <="1300") { unset( $food[$key1]); } } } } 上記のプログラムを書いてローカル環境で実行するとNotice Undefined offsetの警告が沢山 出ます。ググるなどして、未定義の変数などがある場合に出ると他のサイトで読んだのですが上記に特に未定義の 変数は無いように思うのですが・・。 (unsetをecho "hello";などに置き換えると警告は出ません) やりたい事は上記のような配列の集まりが数百個あり、 item2の値の数値により配列を消したりしたいのですが、警告を無くすにはどうしたらよいでしょうか。 (一時配列は1から順に増えていきます) phpを始めたばかりで解決方法を探しているのですがネット上では見つけられません・・。

    • ベストアンサー
    • PHP
  • php、並び替え、サーバーの負担などについて

    すいません。php初心者なのですが、ある写真とコメントを任意の順番で並び替えができるような プログラムを作りました。 チェックボックスやラジオボタンで新着順、季節順、古い順、お気に入り順・・などで並び替えができるサイトで、一ページあたり200枚表示するので全部で25ページです。(写真自体が5000ほどありますので) 初めてのプログラミングでどのように組めばよいのかわからなかったのですが、 div~/divで囲んだ中に写真と説明コメントを入れ(htmlで記述)、それをphpファイルとして保存。これを写真の数だけ作り、phpで並び替えて、phpで表示。 (つまりphpファイルが5000個できあがります) とりあえず動作自体は自分の思ったとおり動いたのですが、 例えば、20人くらいが同時に並び替えをして、表示した場合、サイトが重くなったりしますでしょうか? 気になるのが5000個もあるphpファイルでして、phpで呼び出す場合、phpファイルが最も負担が少ないと聞きましたのでそのようにしました(最初はメモ帳に記載していましたが呼び出す際に遅くなると他の人い言われました) 現在100個ほどphpファイルを作りましたが、相当労力が必要でして、このまま続けても重くなって 使い物にならないなら困るので質問しました。 よろしくお願いします。

    • 締切済み
    • PHP
  • phpでファイルを読み込んで保存する方法

    phpで例えばhttp://www.yahoo.co.jpなどのファイルを読み込んでそれをテキストファイルにして保存するにはどうすればいいのでしょうか? ・ファイルを読み込んでprintで表示 ・ファイルをアップロードしてフォルダに保存 とバラバラのプログラムはそれぞれできたのですが、どうやってこれを連結させて読み込んだファイルをフォルダに保存したらいいのかわかりません。 読み込んだファイルにファイル名と拡張子とかをどうやってつけたらいいのか、それをどう保存にもっていけばいいのか。。。 プログラミング勉強を始めたばかりで、まずはphpをやっているという状況です。 よろしくお願いいたします。

    • ベストアンサー
    • PHP
  • テキストファイルにてデータ管理

    お世話になっております。 http://oshiete1.goo.ne.jp/qa4005498.html http://oshiete1.goo.ne.jp/qa4047511.html これまで上記ページにてDBを使わずにテキストファイルにてデータ管理するアドバイスをいただき、テキストエリアに入力したものをテキストファイルに登録することが出来ました。 こんな感じ。 01<>プログラム 01_01<>PHP 01_02<>javascript と入力したものを、テキストファイルに 01  プログラム 01_01 PHP 01_02 javascript に登録(半角数値と文字の間はスペース)。 そこで、テキストファイルに登録されたデータを修正・削除する管理画面を作っているのですが、テキストファイルからデータを呼び出し、file()を用いてデータを配列にし、for文で各データをテキストフォームに表示させるところまで出来ましたが、以下の点についてが分からず、アドバイスを頂ければと投函させていただきます。 1.修正する場合、テキストファイルのデータを配列にして各データをテキストフォームにて表示させているが、修正する場合、どのような流れになるのか?(テキストファイルのデータは改行にて登録されていますが、テキストファイルから読み込んだとき配列にしているので、適正な流れが分かりません) 2.テキストファイルのデータを配列にし、各テキストフォームに表示させた際、削除するための機能と考え、各データ毎にチェックボックスを設けていますが、配列データの任意の場所を削除したとき、再度テキストファイルに改行を含んだデータとして登録するには、どういった流れ(プログラム?関数?)になるのか? 以上、皆さんお忙しいとは思いますが、お知恵を頂戴出来れば幸いです。宜しくお願い致します!

    • ベストアンサー
    • PHP
  • PHPのファイルアップロード・ダウンロードに関して

    PHPを用いて作成したいプログラムの内容は以下の通りです。 1. htmlフォームよりファイルをアップロード(テキストファイル) 2. アップロードされたファイルの中のデータに対して別のPHPプログラムを実行 3. 2の結果をhtmlにて表示、且つ結果ファイルのダウンロード です。 行き詰まっているのは、htmlから<input type="file">を用いて送信されたファイルはPHPでは$_FILESにそのファイルに関する情報が格納されると思いますが、別のPHPプログラムを実行する際にこのグローバル変数($_FILES)は使用できません。一度、move_uploaded_fileにてどこかのディレクトリに保存したファイルを、fopenなどで読み込んで実行させするしか方法はないでしょうか?すなわち、move_uploaded_fileなしでアップロードファイル内のデータを別のPHPプログラムで実行させる方法はないでしょうか? ダウンロードに関しても同様で、PHPプログラムの実行結果が納められた変数($XXXX)をダウンロードしたい場合、どこかのディレクトリに保存せずにこれをダウンロードさせる方法はないでしょうか? どうぞよろしくお願いします。

    • ベストアンサー
    • PHP
  • php形式のファイルってどうやって表示さしられるの

    php形式のファイルってどうやって表示さしられるのでしょうか? 大切な画像ファイルで保存したんですが、 知らない拡張子がついたファイルになってました、 開こうにもどうやったらいいのか分からず、 phpは何者ですか?又 jpgみたいにシンプルにちゃんと画像として表示できるにはどうしたらいいのでしょうか?

  • 添付ファイルが分割されてしまう。

    イラストなどの画像をJPG形式で保存し、それを添付ファイルにしてメールを送信すると送った先に4つのメールが届き、1通はちゃんとしたもので、あとは自動的に先方の削除済みアイテムのフォルダーに入ってしまうらしく、先方にはJPG[1/4]と語尾に出てきます。添付ファイルでの保存形式(JPG)がおかしいのでしょうか。テキストファイル、リッチテキストどちらの形式でためしても、分割されて送信されています。どうしたら、1通の添付ファイル付メールがおくれるのでしょうか。

  • phpの限界は?

    たとえば、企業が自社のHPより、ショッピングカートを設置する場合は、 プログラム言語は「php」または「perl」で 顧客のデータファイルも、カンマ区切りのテキスト形式の「csv」でも 十分かと思います。 しかし、楽天やヤフーのような同時に何十人も使用する場合も、  (1)「php」または「perl」で作ったプログラムでも堪えられるのでしょうか?同時に何人程度の使用なら大丈夫なのでしょう?  (2)一般的にこのようなケース(同時に何十人も使用するプログラムの場合   ショッピングカートの場合、メール配信もあると思います。)は   どんな言語でプログラムを作成するのでしょうか?  (3)データファィルは、MySQLなら大丈夫でしょうが、   テキスト形式のファイルを使う場合、どのような規模のシステムが限界なのでしょうか?   件数または同時使用頻度など。   テキスト形式のファイルの場合、データベースになっていませんから、   ファイルの更新は一度、全レコードを配列に入れて、   ふたたび、全配列をファィルに書き出すといった処理をすると思います。(もちろんLOCKはしますが) 教えていいただければ幸いです。

    • ベストアンサー
    • PHP
  • phpでテキストファイルの作成

    今phpを勉強しています。 そこで私は今テキストファイルをデスクトップに作るようなプログラムを考えているのですがうまく行きません。 HTMLとの連動でボタンが一つあり、そのボタンを押すとデスクトップ上にテキストファイルが作成できるようなプログラムを組みたいと思っています。 具体的な動作手順はこのようなプログラムを考えております。 1.HTMLのボタンを押す 2.テキストファイルの内容に「あいうえお」と書き込んで「あいうえお」と書き込まれたテキストファイルをデスクトップ上に表示する。ファイル名は「test」で良いです。 勉強としてこのようなプログラムの組み方を教えていただきたいと思っております。 どなたか分かる方がいましたら教えて欲しいと思っています。 よろしくお願いします。

    • ベストアンサー
    • PHP

専門家に質問してみよう