• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:PHPで特定のサイト上の文字列の出現個数を調べたい)

PHPで特定のサイト上の文字列の出現個数を調べる方法

このQ&Aのポイント
  • PHP初心者です。PHPで特定のサイト上のindex.htmlのファイルを解析してその中にある、ファイルxxx.gifの個数を調べる方法を教えてください。
  • 私はPHP初心者で、特定のサイト上のindex.htmlのファイルを解析する方法を教えてください。特に、ファイルxxx.gifの出現個数を調べる方法を知りたいです。
  • PHPを使用して特定のサイト上のindex.htmlのファイルを解析し、その中に含まれるファイルxxx.gifの個数を調べたいです。どのようにすれば実現できるでしょうか?

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

  • ベストアンサー
  • Rayderl
  • ベストアンサー率83% (40/48)
回答No.2

fread関数を使うならfopenが必要ですが、file関数を使うならファイル名を直接指定します。知らない関数を使うときには、オンラインのPHPマニュアルで引数を確認すると良いですよ。関数名で検索もできて、便利です。 ■file関数 http://au3.php.net/manual/ja/function.file.php ただし、file関数だとファイルの内容を配列として返します。ここではファイルの内容全体をひとつの文字列として検索対象にしたいわけですから、file_get_contents関数を使う方が良いと思います。 そうすると、こんな感じに2行で書けます。 $count =substr_count(file_get_contents("http://www.xxx.com/index.php"), "xxx.gif"); echo "合計:".$count;

harrygogo
質問者

お礼

Rayderlさん ありがとうございました。 大変参考になりました。 これからもっと勉強していきたいとおもっています

その他の回答 (1)

  • asuncion
  • ベストアンサー率33% (2127/6289)
回答No.1

> $file_name = "​http://www.xxx.com/index.html"; > $string1 = fread($file, filesize($file_name)); $file が未定義のように見えます。 html ファイルを読む前に、fopen() か何かでファイルハンドルを 取得しておく必要はありませんか? また、html ファイルは明らかにテキスト形式なので、 fread() ではなくて file() あたりを使えばよいのではないかと思います。 > $count =substr_count($string1, string2); string2 に $ が付いていません。 > echo "<P>".$count; <P> タグを書いたら、</P> タグで閉じてください。

harrygogo
質問者

補足

asuncionさん ご回答ありがとうございます。 下記のように変更してみましたが、 うまくいきません 4行目がエラーと表示されますが、 根本的に全体間違っているのでしょうか? <?php $file_name = "http://www.xxx.com/index.php"; $file = fopen($file_name, "r") or die("OpenError $file_name"); $string1 = file($file, filesize($file_name)); $string2 = "xxx.gif"; $count =substr_count($string1, $string2); echo "合計:".$count; ?> ご教授お願いいたします。

関連するQ&A