0

私は自分のウェブサイトの検索エンジンを持っています。グーグルの「xxxですか?」のような機能をインストールしました。修正された文字列を返します。それで、私がそれらの間違った文字列と正しい文字列の両方を比較し、Googleのように修正された単語を太字にする方法はありますか?

これが私のコードです:

 <?php
 function suggestion($word){
    $first_word=substr($word,0,1);
    $first_word=strtoupper($first_word);
    $query="SELECT * FROM words WHERE UPPER(LEFT(name,1))='$first_word'";
    $db_words=mysql_query($query);
    $flag=true;
    while($row_words=mysql_fetch_array($db_words)){
        similar_text($row_words['name'],$word,$percent);
        if(($percent>50)&&($percent!=100)){
            echo '<strong>Did you mean:</strong><br>';
            echo $row_words['name'],'<br>';
            $flag=false;
        }
    }
 }
 ?>
4

2 に答える 2

3

以下のコメントによると、次のようなものを探しています。

function corrected($bad, $good, $wholephrase) {
    return preg_replace('#\b'. preg_quote($bad) . '\b#g', '<em>' . htmlspecialchars($good) . '</em>', $wholephrase);
}

スペルミスの検出と代替案の提案がどのように達成されるかに興味がある方は、こちらをご覧ください:レーベンシュタイン距離

于 2012-08-30T03:07:48.400 に答える
0

誰も助けてくれなかった!! ;-(

作成したコードは次のとおりです。

function suggestion($word){
    $first_word=substr($word,0,1);
    $first_word=strtoupper($first_word);
    $query="SELECT * FROM words WHERE UPPER(LEFT(name,1))='$first_word'";
    $db_words=mysql_query($query);
    $wd=explode(" ",$word);
    while($row_words=mysql_fetch_array($db_words)){
        similar_text($row_words['name'],$word,$percent);
        if(($percent>50)&&($percent!=100)){
            $rw=explode(" ",$row_words['name']);
            $d=array_udiff($rw,$wd,'strcasecmp');
            for($i=0;$i<count($rw);$i++){
                if(in_array($rw[$i],$d)){
                    $rw[$i]="<em>".$rw[$i]."</em>";
                }
            }
            echo '<strong>Did you mean:</strong><br>';
            foreach($rw as $r){
                echo $r," ";
            }
            echo '<br>';
        }
    }
}
于 2012-08-30T05:06:13.790 に答える