2013-08-05 56 views
0

我有一大堆的含有一個ID的XML文件。例如PHP匹配給定數量的

<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'

基本上它不喜歡的圖案號碼。

我該怎麼辦?用Google搜索了很多,但所有導致匹配一組號碼......

PS:我不想使用DOM XML解析器在這種情況下,由於業績....

+0

你是Unix/Linux平臺上,你可以利用的工具,如grep的? –

+0

你可以使用strpos來完成同樣的事情。 '$解析度= strpos( 「 $貨號<\/WINE_PRODUCER>」,$內容);'要測試:'如果(!$ RES ==假){//發現它}' – Orangepill

回答

1

如果你總是需要匹配一個固定的數字,你可以做一個strstr

$num = 9456; 
$find = "<WINE_PRODUCER>". $num . "</WINE_PRODUCER>"; 
$found = strstr($content, $find) !== false; 

要解決你的正則表達式,你需要指定分隔符:

$pattern = "@<WINE_PRODUCER>$Num<\/WINE_PRODUCER>@"; 

應該工作,但你也許並不需要一個正則表達式。

1

嘗試:

$pattern = sprintf(preg_quote('<WINE_PRODUCER>%s<\/WINE_PRODUCER>'), $num); 

echo '/'.$pattern.'/'; 
相關問題