ファイル内、文章内の文字列の検索

検索エンジンなどのようにあるファイルの中に含まれる文字列を探す方法。
他に便利な関数などあるかもしれないが知らないので適当にやってみる。

基本はファイルを開き、文章を配列に読み込み、同じ文字列が無いか判定する。
ということでやってる事はとても簡単。
先にまとめると

<?php
$mojiretsu = "これと同じ文字列";
$read_test = @file("test.txt");
$number = count($read_test);

$gyou = 0;
for($i=0; $i<$number; $i++){
 $moji_test[$i] = stripos($read_test[$i] , $mojiretsu);
 if($moji_test[$i] !== false){
  $gyou = $i;
  $gyou++;
  print ($gyou . "行目に見つかりました。<br>");
 }
}
?>

例によってデータの読み込みのサンプルを使う。(上部分)
今回は改行を取り除く必要がないのでrtrim部分のforで括ってる部分は削除。
@fileで1行ごとに配列に格納されるので、下部分で文字列を探す。

ここで使う関数は
stripos
文字列の中から同じ文字列が最初に見つかった場所を返す関数。
今回の場合1行ごとに探しているので、そこから更に見つかった場所を教えてもらわなくてもいいので判定だけ使わせてもらう。
$moji_test[$i] = stripos($read_test[$i] , $mojiretsu);
i番目に見つかったら$moji_test[$i]に判定が入る。
if($moji_test[$i] !== false)
の部分で判定し、入っていたらif内が実行される。
ちなみにここ、「$moji_test[$i]に入っていなかった事なかったらしかも型同じで」
というわけの分からないことになっているが、オフィシャルでそう解説されてるのでそうしている。
で、$gyouに行番号を入れて、配列は1ではなく0から始まるので$gyou++として0でも1行目と表示されるようにしている。



サンプル

著作権について
ファイルからデータの読み込み
ファイルへのデータの書き込み
フォルダ内のファイル名取得
アクセスカウンターの作り方
アンケートの作り方
フォームからのデータの取得
フォーム以外のページからのデータの取得
ファイル内、文章内の文字列の検索
パスワード認証の方法と作り方

0から始めるPHP

PHPのすすめ(これ飛ばしてもいい)
必要な環境とPHPへのアクセス
開発に使うもの
初めての方への注意点
PHPの基本(何らかの言語経験者向け)
PHPの基本(初めての人向け)
書き方
ファイルの読み込み

プログラミング講座
文字などの出力
PHPにおける変数
ifによる条件比較
forによる繰り返し処理
PHPにおける配列
これまでとこれからの学び方

PHPの使える
おすすめレンタルサーバー

スタードメイン

レンタルサーバーの選び方


その他

プログラミングのコツ
プログラマーと年齢
誰でも簡単にできるサーバー負荷対策
社内や自宅サーバーのグローバルIPアドレスが変わってもアクセスできるようにする

日記

2014年
日本語形態素データとキーワード出現回数
Androidベースのゲーム機に期待
4月末に判明したIEの脆弱性について
フラッシュプレーヤーの製作
ホームページとウェブサイトの違い
WIFIなどの用語は正しく使いたい
国産ゲーム会社のサイトについて
検索エンジンの開発について
プレインストールWindowsからの脱却
Android・iPhoneとアプリ開発
Windows8、スタートボタンはもういらない?
サイトの作成とやるやらないは別
あの人は詳しいと言う人と言われる人
index.htmlと/の正規化について
AndroidOSとLinuxOS
モバイル端末で必ず見るもの
ユーザー参加型市民アプリ

2013年2月
2013年1月
2012年12月
2012年11月
2012年10月
2012年9月