具體的話我想從一個字符串中去除整個單詞,無論他們是裏面的字符串。地帶從字符串
我已創建的禁止單詞的數組:
$wordlist = array("or", "and", "where", ...)
現在我剝離的話:
foreach($wordlist as $word)
$string = str_replace($word, "", $string);
的問題是,在上面的代碼還條包含像禁單詞「沙子「或」更多「。
具體的話我想從一個字符串中去除整個單詞,無論他們是裏面的字符串。地帶從字符串
我已創建的禁止單詞的數組:
$wordlist = array("or", "and", "where", ...)
現在我剝離的話:
foreach($wordlist as $word)
$string = str_replace($word, "", $string);
的問題是,在上面的代碼還條包含像禁單詞「沙子「或」更多「。
爲此,您可以使用preg_replace和單詞邊界:
$wordlist = array("or", "and", "where");
foreach ($wordlist as &$word) {
$word = '/\b' . preg_quote($word, '/') . '\b/';
}
$string = preg_replace($wordlist, '', $string);
編輯:Example。
TRY:
$string = preg_replace("\b$word\b", "", $string);
這這麼想的似乎是工作..扔「分隔符不能是字母,數字或反斜線」 – 2016-09-13 18:24:58
的str_replace函數還支持陣列的輸入端。這意味着您可以通過以下方式使用它:
str_replace(array("word1", "word2"), "", $string);
這意味着所有現存的數組中的話會被空字符串替換。如果你想要特定的替換,你也可以創建一個替換數組。
要刪除正確的話在你的設置我會建議添加空格圍繞「或」和「地方」。因爲你只會刪除真實的單詞而不是單詞的一部分。
我希望這會有所幫助。
$areaname = str_replace(array("to", "the","a","an","in","by","but","are","is","had","have","has"),'',$areaname);
我用了這一點,並能正常工作
但它會代替這些詞添加空格,所以你需要使用再次更換,以清潔香港雙重空間,並刪除他們
人提示:str_replace可以接受一個數組,所以你可以'str_replace($ wordlist,'',$ string)''。 – cmbuckley 2012-02-18 14:51:57