這裏是我的代碼:PHP preg_match_all長串失敗
$long = str_repeat('a very long string text', 100); // try changing 100 to 5000
$str = <<<STR
<abc>a short string text</abc>
<abc>$long</abc>
STR;
preg_match_all('@<abc>([^<>]+)</abc>@sU', $str, $matched);
print_r($matched);
和預期它的工作原理完全。但是,你已經改變了100次至5000後,運行
print_r($matched);
而你只會得到的短字符串出現的結果。
我的問題是如何讓preg_match或preg_match_all使用大字符串文本(大至1MB或更大)?
看起來像你試圖用正則表達式解析HTML/XML。 不要這樣做。有關原因,請參閱http://stackoverflow.com/questions/1732348/regex-match-open-tags-except-xhtml-self-contained-tags/1732454#1732454。 – ThiefMaster 2010-11-15 02:30:29