2016-02-07 47 views
0

我已經爲了創造半在這裏工作和在其他網站看了不少帖子髒話過濾器preg_replace如下:與例外的preg_replace字

function swearwords($word){ 
    $word = preg_replace('/\bwwww.badword.com\b/', '', $word); //do not remove \b //to add more copy and put word down 
    $word = preg_replace('/\bwww.badword.com\b/', '', $word); //do not remove \b //to add more copy and put word down 
    $word = preg_replace('/\bbadword\b/', '', $word); //do not remove \b //to add more copy and put word down 
    //$word = preg_replace('/\bimg.badword``\b/', '', $word); //do not remove \b //to add more copy and put word down 
    return $word; 
} 

這是工作,但我想允許img.badword的情況下

那麼,「badword」之前,它已經.IMG,我希望允許使用

+0

''/ \ B [^ I] [^ M] [^克] [^ 。] badword \ b /'' – arkascha

回答

1

這裏是「負回顧後」斷言解決方案:

... 
$word = preg_replace('/\b(?<!img\.)badword\b/', '', $word); 
... 

你也可以嘗試以下的所有功能於一個替換:

function swearwords($word){ 
    $word = preg_replace('/\b(w{3,4}\.)*(?<!img\.)badword(\.com)*\b/', '', $word); 
    return $word; 
} 

http://php.net/manual/en/regexp.reference.assertions.php

+0

一體式解決方案精彩。謝謝 – BravoZuluInc

+0

@BravoZuluInc,歡迎您! – RomanPerekhrest

+0

再來一次,我需要允許img.badword和imgmgr.badword – BravoZuluInc