這個問題的PHP's preg_match_all() to pull out all php tagspreg_match_all()PHP標籤不在引號內
我需要擴展這個正則表達式/<\?.*?(?:\?>|$)/s
時,發現單或雙引號內的標籤不符合第2部分。這將涉及反向引用匹配的引用類型,這超出了我對正則表達式的直覺理解。
示例HTML:
<?
// Test xml
$this->_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$this->_xml .= "<TransferredValueTxn xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\n";
$this->_xml .= "<?=$test?> <TransferredValueTxnReq>" . trans("test") . "\n";
?>
希望的結果:
[0] => "<?
// Test xml
$this->_xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n";
$this->_xml .= "<TransferredValueTxn xmlns:xsi=\"http://www.w3.org/2001/XMLSchema-instance\" >\n";
$this->_xml .= "<?=$test?> <TransferredValueTxnReq>" . trans("test") . "\n";
?>"
我並不積極,但據我所知,'token_get_all()'不會用內聯PHP解析HTML。這是我想要實現的。 –
它應該!請注意,只有啓用了短標籤時,它纔會識別'<?',儘管如同「真實」解釋器一樣。 – duskwuff