2016-07-05 4 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

당신이 HTML/PHP 데이터를 PHP를 사용하여 출력하고 가정 시작, 당신은 아마도 파일을로드하고 그 생성하는 문자열을 검색 할'file_get_contents'를 사용할 수 있습니다. 그러나 PHP 파일의 PHP 요소를 검색한다는 점에 유의하십시오. 실제로 원하는 것은 출력 버퍼링 또는 아마도 Curl을 사용하는 것입니다. – Martin

+0

^curl을 사용할 수없는 경우'file_get_contents'도 래퍼를 허용합니다. 그러나 실제로'allow_url_fopen'이 활성화되어 있어야합니다. 그리고 xpath는이 경우 많이 도움이 될 수 있습니다. – Chay22

+0

하나의 파일에 대해서만이 코드를 사용할 수는 있지만 많은 lang 파일을 가지고 있는데 그것들을 모두 검색해야합니다''date-list contains'' –

답변

1

하지만 모든 파일을 통해 하나 개의 파일에

그냥 루프를 검색합니다.

함수에 래핑하면 모든 파일에 루프 할 필요가 없습니다.

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

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

그 폴더를 동적으로 생성하는 경우, 당신은 클래스 DirectoryIterator으로 glob 또는 하나를 사용할 수

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

등 기존 랭 폴더 이름을 포함하는 배열을 만듭니다.

루프

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"; 
    } 
} 
관련 문제