可能重複:
Function ereg_replace() is deprecated - How to clear this bug?PHP額日格和預浸
我有這樣的腳本下載的PHP類
ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3);
現在拋出錯誤棄用的功能。
我該如何將它替換爲preg或preg匹配所有?
可能重複:
Function ereg_replace() is deprecated - How to clear this bug?PHP額日格和預浸
我有這樣的腳本下載的PHP類
ereg('^([^=]*)=["\']?([^"\']*)["\']?$',$v,$a3);
現在拋出錯誤棄用的功能。
我該如何將它替換爲preg或preg匹配所有?
嘗試:
preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/', $v, $a3);
是非常相似的。 PREG包含模式內的標誌,EREG不包含。由於這個原因,PREG在模式的開頭和結尾需要一個分隔符char(我使用/
)。事實上,PREG搜索模式後的標誌,例如,有一個區分大小寫的匹配您添加i
標誌:
preg_match('/^([^=]*)=["\']?([^"\']*)["\']?$/i', $v, $a3);
最大的區別是,正則表達式需要從某個字符開始,並以此結束。所以如果你用/或#開始和結束正則表達式,你應該沒問題。從外觀上看,我沒有看到任何不相容的東西。試一試。
考慮使用back references。您的表情將匹配foo="bar'
,但不匹配foo="bar'baz"
。
#^([^=]*)=(["\']?)([^\2]*)\2$#
使用,以取代HTML標籤 – niksmac 2012-02-09 10:15:24
改變這一額日格( '^([^ =] *)=「\']?([^ 」\「] *)[」 \ '] $', $ v,$ a3);至 preg_match(「/ ^([^ =] *)= [」\']?([^'\'] *)[「\']?$ /」,$ v, $ A3); – 2012-02-09 10:17:25