2016-07-05 6 views
0

Ich möchte eine Suche auf meiner Website ohne MySQL erstellen.Suche auf meiner Website ohne MySQL

Ich habe einen Code, aber es sucht nur in einer Datei

$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"; 
} 

Ich würde Ihre Hilfe zu schätzen wissen.

+1

vorausgesetzt, Sie PHP verwenden und die Ausgabe HTML/PHP-Daten, dann könnten Sie möglicherweise verwenden 'file_get_contents' eine Datei zu laden und dann die Zeichenfolge suchen, dass generiert. Aber beachte, dass es auch die PHP-Elemente einer PHP-Datei durchsucht. Was du also wirklich machen willst, ist die Verwendung der Ausgangspufferung, oder möglicherweise Curl ...? – Martin

+0

^'file_get_contents' akzeptieren auch Wrapper, wenn Curl nicht verfügbar ist. Aber tatsächlich muss 'allow_url_fopen' aktiviert werden. Und, XPath könnte in diesem Fall viel helfen. – Chay22

+0

Ich kann diesen Code nur für eine Datei verwenden, aber ich habe eine Menge lang-Dateien und ich muss sie alle suchen ' Date-list enthält ' ' –

Antwort

1

aber es sucht nur in einer Datei

Gerade Schleife über alle Dateien.

Umschließen Sie es zu einer Funktion, so dass Sie nicht alle Dateien durchlaufen müssen.

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

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

Erstellen Sie ein Array vorhandenen lang Ordnernamen dynamisch, wie

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

Wenn diese Ordner erstellt enthält, Sie glob oder ein mit Klasse DirectoryIterator nutzen könnten.

Begin Schleife

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"; 
    } 
} 
Verwandte Themen