こんにちは。プログラム(主にPHP)を始めて約3ヶ月です。
2つのテキストファイルがあります。1つ(news.txt)はニュースが複数行記載されていて、もう1つ(keywords.txt)にはキーワードが複数行記載されています。
■news.txt
北海道の天気は雨です。
東京の天気は晴れです。
大阪の天気は曇りです。
鹿児島の天気はカミナリです。
沖縄の天気は雨です。
■keywords.txt
東京
大阪
沖縄
keywords.txtのキーワードを元にnews.txtを検索し、該当したすべての行を表示するPHPプログラムを作りたいと思っています。上記の2つのファイルを例にすれば、まずkeywords.txtの1行目に記載されている「東京」をキーワードにnews.txtを検索して「東京の天気は晴れです。」と表示され、次にkeywords.txtの2行目に記載されている「大阪」をキーワードにnews.txtを検索して「大阪の天気は曇りです。」、最後に「沖縄」を検索して「沖縄の天気は雨です。」という3行が表示させたいわけです。
PHP
1<?php 2$news = fopen("news.txt", "r"); //ニュースファイルを開く 3$keywords = fopen("keywords.txt", "r"); //キーワードファイルを開く 4$open_news = file_get_contents($news); //ニュースファイルを配列にする 5$arr_keywords = file_get_contents($keywords); //キーワードファイルを配列にする 6$count = count($arr_keywords); //キーワードの件数(配列の項目数)を取得する。ただ、ここでprint_r($count);を実行すると、「1」と表示されてしまう。 7 8//配列にしたキーワードを元に、ニュースファイルを1行目からチェックし、合致した行を表示する。ただし、これを実行しても結果は画面が空白になる。 9 10 for ($i = 0 ; $i < $count; $i++){ 11 if(strpos($open_news, $arr_keywords[$count] !== false)){ 12 $x = strpos($open_news, $arr_keywords[$count]); 13 echo $x; 14 } 15} 16 17fclose($news); //ニュースファイルを閉じる 18fclose($keywords); //キーワードファイルを閉じる 19?>
以上となります。どうぞよろしくお願いいたします。