2016-07-05 12 views
0

私はMySQLなしで私のウェブサイトで検索を作成したいと思います。MySQLなしで私のサイトを検索してください

私は、コードを持っているが、それは、私はあなたの助けをいただければ幸い一つのファイルにのみ

$query = $_GET["q"]; 
include "date-list.php"; 
$filename = "news/". $news ."/lang.php"; 
$searchfor = "$query"; 
$file = file_get_contents($filename); 
if(strpos($file, $searchfor)) 
{ 
echo "News found found"; 
} 

を検索します。

+1

を開始します。しかし、PHPファイルのPHP要素も検索することに注意してください。本当にやりたいことは、出力バッファリング、または恐らくCurlを使用することです。 – Martin

+0

^curlが利用できない場合のために 'file_get_contents'はラッパーも受け入れます。しかし、実際には 'allow_url_fopen'を有効にする必要があります。そして、xpathはこの場合多くを助けるかもしれません。 – Chay22

+0

私は1つのファイルに対してこのコードを使うことができますが、たくさんのlangファイルがあり、それらをすべて検索する必要があります。 '<?php $ query = $ _GET [" q "]; には「date-list.php」が含まれています。 $ filename = "news /" $ news。 "/ lang.php"; $ searchfor = "$ query"; $ file = file_get_contents($ filename); if(strpos($ file、$ searchfor)) { echo "ニュースが見つかりました"; } ?> '日付リストには、' <?php $ news = "160702"; $ news = "160701"; $ news = "160630"; $ news = "160629"; $ news = "160628"; ?> ' –

答えて

1

が、それはすべてのファイルの上にのみ1つのファイルに

だけでループを検索します。

関数にラップするので、すべてのファイルにループする必要はありません。

function wordFoundOnLangFiles($filename, $query) { 
    $filename = "news/". $filename."/lang.php"; 
    $searchfor = "$query"; 
    $file = file_get_contents($filename); 

    return strpos($file, $searchfor !== false) ? true : false; 
} 

それらのフォルダが動的に作成されている場合は、そのような

$lang = ['en', 'de', 'ru', 'ja', 'ko',]; 

として、既存のlangフォルダ名を含む配列を作成し、そのクラスDirectoryIteratorglobまたは1つを使用することができます。

は、あなたはおそらくファイルをロードして、それが生成する文字列を検索するには、 `file_get_contents`を使用することができ、あなたがPHPを使用してHTML/PHPデータを出力していると仮定したループ

function wordFoundOnLangFiles($filename, $query) { 
    $filename = "news/". $filename."/lang.php"; 
    $searchfor = "$query"; 
    $file = file_get_contents($filename); 

    return strpos($file, $searchfor !== false) ? true : false; 
} 

$lang = ['en', 'de', 'ru', 'ja', 'ko',]; 

foreach ($lang as $folder) { 
    if (wordFoundOnLangFiles($folder, $query)) { 
     echo "Word found"; 
    } 
} 
関連する問題