我正在编写一个贯穿用户注释的脚本,将注释分成单个单词,并将这些单词添加到mysql中的表中。原因是找到评论中使用最多的词语。
此外,我在添加到表之前将单词与要忽略的单词列表进行匹配。
我无法弄清楚的是,如何忽略任何带有@符号作为单词中字符的单词。
这是我目前所拥有的,除了匹配@
之外它的工作原理$added_count=0;
$words_to_forget = array();
$forget_words = "SELECT forget FROM word_bank_forget";
$result = $conn->query($forget_words) or die($conn->error.__LINE__);
while($row = $result->fetch_assoc())
{
$words_to_forget[] = $row['forget'];
}
$survey_words = "SELECT comments,clinic_id,sid FROM survey WHERE word_bank='0'";
$result = $conn->query($survey_words) or die($conn->error.__LINE__);
while($row = $result->fetch_assoc())
{
$comments = $row['comments'];
$clinic_id = $row['clinic_id'];
$sid = $row['sid'];
$wordChunks = explode(" ", $comments);
for($i = 0; $i < count($wordChunks); $i++){
$broken_word = strtolower($wordChunks[$i]);
$broken_word = str_replace(array('.', ''), '' , $broken_word);
$broken_word = str_replace(array(',', ''), '' , $broken_word);
if ($broken_word != '' ){
if (!in_array($broken_word, $words_to_forget)) {
mysql_query("INSERT into word_bank (word,clinic_id) values ('$broken_word','$clinic_id')");
$added_count++;
}
mysql_query("UPDATE survey SET word_bank='1' WHERE sid='$sid'");
}
}
}
我尝试过使用正则表达式,但是无法使用它。 我可以将@符号与/ \ @ /匹配,但似乎无法告诉php如果匹配则忽略该单词。
也许是这些方面的东西(不工作):
$pattern = '/\@/';
if !preg_match($pattern, $broken_word){
}
任何帮助将不胜感激。谢谢。
答案 0 :(得分:1)
if (strpos($word, '@') !== false)