未知的修饰符'/'在…? 它是什么?
当我写下面,我得到这样的警告,它不匹配任何东西,但我相信, $row_search['content']包含$value … 
 preg_match_all("/[^\s]*".preg_quote($value)."[^\s]*/iu", $row_search['content'], $final_matched); WARNING:preg_match_all() [function.preg-match-all]: Unknown modifier '/' in C:\xampp\htdocs\finance\search\search.php on line 82 
为什么我得到这样的警告信息?
谢谢
 我假设$value包含斜线/ ,这是不会preg_quote转义: 
特殊的正则expression式字符是:
. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -. \ + * ? [ ^ ] $ ( ) { } = ! < > | : -
将您使用的分隔符传递给函数:
 preg_match_all("/[^\s]*".preg_quote($value, '/')."[^\s]*/iu", $row_search['content'], $final_matched); // ---^ 
或使用另一个分隔符。
 你应该改变你的preg_quote($value)为preg_quote($value, "/")来转义分隔符。 
 在你的例子中,如果$value包含“(content / other)”,它将被转义为“(content / other)”,你的正则expression式中的这个将是/[^\s]*\(content/other\)[^\s]*/iu ,你可以看到有一个/这将会导致你的正则expression式崩溃。 如果你明确地说“/”是分隔符,那么正则expression式将是/[^\s]*\(content\/other\)[^\s]*/iu 
  /不是PCRE元字符,因此尽pipe您将它用作正则expression式中的分隔符,但preg_quote()不会将其转义,因为它不知道您将它用作分隔符。 就像其他人所说的那样,你必须把它作为第二个parameter passing给它,以便它也可以逃脱: 
 preg_match_all("/[^\s]*".preg_quote($value, '/')."[^\s]*/iu", $row_search['content'], $final_matched); 
 使用preg_quote时指定/作为分隔符: 
 preg_match_all("~/[^\s]*~".preg_quote($value, '/')."[^\s]*/iu", $row_search['content'], $final_matched); 
 否则$value不会被转义。