0

だから私はあなたが単語を入力できるこのphpページを持っています.それがタイトルまたは説明の1つにある場合は、タイトルと説明が表示されます. 今、私はこれを得ました:

$title='hoooi';
$description="Lorem Ipsum is simply dummy text of the printing and typesetting industry.";
if (isset($_GET['zoek'])){
    $zoekwoord=$_GET['zoek'];

if($alles_goed==true){
    $zoekwoordreal= explode(" ", $zoekwoord);
    foreach($zoekwoordreal as $word){
        $zoek_title_en_description=$title . $description;
        if($zoekwoord==""){
        }else{
            $pos=stripos($zoek_title_en_description,$word);
        }
        if($pos!==false){
        echo $title . $description;
                    }
        }
        }
        }
    echo <<<EOT
<table>
<form action="zoek.php" method="get">
    <tr><th>Zoek: </th><td><input type="text" name="zoek" value=""></td></tr>
    <tr><th><input type="submit" value="submit"></td></tr>
</form> 
</table
EOT;

これは完全に機能しますが、検索する単語を 1 つ入力した場合に限ります。ここで、2 つの単語を入力して、一致する場合はタイトルと説明を表示できるようにしたいと考えています。現時点では、たとえば「Lorem is」と入力しても、タイトルと説明が表示されません。しかし、「Lorem」と入力すると、タイトルと説明が表示されます。つまり、2 つの単語を入力すると、$pos==false. PHP ページを 2 語で検索できるようにするにはどうすればよいですか?

4

2 に答える 2

0

「zoek2」という名前の 2 つ目のキーワード入力ボックスを追加することを忘れないでください。

if (isset($_GET['zoek'])){
    $zoekwoord =$_GET['zoek'];
    $zoekwoord2=$_GET['zoek2'];

    if($alles_goed==true){
        $zoek_title_en_description=$title . $description;

        if($zoekwoord!="" && $zoekwoord2!=""){
            $pos=stripos($zoek_title_en_description,$zoekwoord);
            $pos2=stripos($zoek_title_en_description,$zoekwoord2);
        }
        if($pos!==false && $pos2!==false){
            echo $title . $description;
        }
    }
}

複数のキーワードを検索し、1 つの入力ボックスを使用し続ける場合: PS: すべての単語は で分割されますSPACE。例: "karl is great"、合計単語数: 3.

if (isset($_GET['zoek']) && !empty($_GET['zoek']) ){
    $zoekwoords = explode(" ", $_GET['zoek']);
    $foundAll = true;

    if($alles_goed==true){
        $zoek_title_en_description=$title . $description;

        foreach( $zoekwoords as $zoekwoord ){
            $pos=stripos($zoek_title_en_description,$zoekwoord);
            if($pos===false){
                $foundAll=false;
                break; //add break to speed up
            }
        }
        if($foundAll !== false){
            echo $title . $description;
        }
    }
}
于 2013-11-11T09:45:32.527 に答える
0

explode()またはを使用preg_split('/\s+/', ...)して、クエリ文字列を単語に分割し、それらを a でループして、foreach()それぞれをチェックできます。

于 2013-11-11T09:43:38.890 に答える