我正在开发一个自定义拼写检查器(并且边走边学),它需要在提交表单时执行以下操作:
- 将从 textarea 提交的字符串转换为单词数组。
english
在 mysql表中搜索数组中的每个单词。- 如果该单词不存在,请将其标记为拼写错误,方法是将其包装在 HTML 标记中。
- 将数组转换回字符串,包括原始标点符号、换行符和新标记的单词。
我已经搜索了很多帖子以及 php.net 并且我想出了以下代码,除了 #4 之外的所有内容,我已经被困在那里几天(我假设我需要添加一些东西或者在 #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 有什么建议吗?