我有一个动态的产品列表,我正在检查它。问题是,在我的产品名称中,如果有一个/然后我的preg_match给了我preg_match()[function.preg-match]:未知的修饰符错误
这是一个可以使用的产品名称的示例
$productName = "Samuel Cream Leather Sofa, Loveseat, Club Chair, & Ottoman Set";
这不起作用
$productName = "Samuel Cream Leather Sofa, Loveseat, Club Chair, w/ & Ottoman Set";
foreach ($results as $result) {
$decodedProduct = urldecode($product);
if(preg_match("/$decodedProduct/",$result->nodeValue)){
echo $decodedProduct."-------------".$result->nodeValue."<br />";
}
}
答案 0 :(得分:5)
将值插入到不用作正则表达式的正则表达式中时,请始终使用preg_quote
。
要避免分隔符冲突,请使用preg_quote
的第二个参数来定义需要引用的分隔符char:
preg_match("/" . preg_quote($decodedProduct, "/") . "/", $result->nodeValue)
答案 1 :(得分:-2)
尝试使用stripslashes()。
http://php.net/manual/en/function.stripslashes.php
$productName = stripslashes("Samuel Cream Leather Sofa, Loveseat, Club Chair, w/ & Ottoman Set");
foreach ($results as $result) {
$decodedProduct = urldecode($product);
if(preg_match("/$decodedProduct/",$result->nodeValue)){
echo $decodedProduct."-------------".$result->nodeValue."<br />";
}
}