我得到了一堆包含 ID 的 XML 文件。例如
<WINE_PRODUCER>9456</WINE_PRODUCER>
我需要检查一下,例如哪个文件包含 WINE_PRODUCER id=9456:
$content = file_get_contents("my.xml");
$Num = 9456;
$pattern = "<WINE_PRODUCER>$Num<\/WINE_PRODUCER>";
$res = preg_match("$pattern", $content);
我收到错误 PHP 警告:
preg_match(): Unknown modifier '9'
基本上它不喜欢图案中的数字。
我该怎么办?谷歌搜索了很多,但都导致匹配一组数字......
PS:由于性能原因,我不想在这种情况下使用 DOM xml 解析器。
如果您总是需要匹配固定数字,您只需执行
strstr
即可。
$num = 9456;
$find = "<WINE_PRODUCER>". $num . "</WINE_PRODUCER>";
$found = strstr($content, $find) !== false;
要修复正则表达式,您需要指定分隔符:
$pattern = "@<WINE_PRODUCER>$Num<\/WINE_PRODUCER>@";
应该可以,但你可能不需要正则表达式。
尝试:
$pattern = sprintf(preg_quote('<WINE_PRODUCER>%s<\/WINE_PRODUCER>'), $num);
echo '/'.$pattern.'/';