私は、フォームの送信時に次のことを行う必要があるカスタムスペルチェッカーに取り組んでいます(そして、学習しながら学習しています):
- textarea から送信された文字列を単語の配列に変換します。
english
mysqlテーブルの配列内の各単語を検索します。- 単語が存在しない場合は、HTML タグでラップしてスペルミスとしてマークします。
- 配列を変換して、元の句読点、改行、および新しくタグ付けされた単語を含む文字列に戻します。
私はphp.netだけでなく多くの投稿を検索し、#4を除くすべてを実行する次のコードを思いつきました.2、3日間そこに行き詰まっています(または保存部分の#1の前ですが、頭を包むことができないようです):
現在のコード:
$inputContents = $_POST['compose'];
$inputContents = preg_replace("/[^a-zA-Z ']+/", ' ', $inputContents);
$inputContents = trim($inputContents);
$inputContents = preg_split("/\s+/", $inputContents);
var_dump($inputContents);
foreach ($inputContents as $singleWord) {
$word_exists = mysql_query("SELECT `word` FROM `english` WHERE `word` = '". mysql_real_escape_string($singleWord) ."'") or die(mysql_error());
$word_exists = mysql_num_rows($word_exists);
if ($word_exists !== 0) {
echo $singleWord ." ";
}else{
echo "<span id='misspelledWord' style='font-style:italic;'>". $singleWord ."</span> ";
}
}
<form action="spellcheck_test.php" method="POST">
<textarea name="compose"></textarea>
<input type="submit" value="Post!" />
</form>
私の文字列が次の場合、上記のコードを使用します。
Spellling games; they're alot of fun!
次に、私の配列は次のようになります。
array(6) { [0]=> string(9) "Spellling" [1]=> string(5) "games" [2]=> string(7) "they're" [3]=> string(4) "alot" [4]=> string(2) "of" [5]=> string(3) "fun" }
コードは次のように出力します。
スペリングゲームはとても楽しいです
しかし、私はそれを出力したい:
スペリングゲーム; 彼らはとても楽しいです!
#4を達成するための提案はありますか?