工作代碼:
$aString = "abcdef/*ghij*/klmn/*opqrs*/tuvwxyz";
// SIMPLE VERSION WHERE ASTERISK MAY NOT BE IN THE COMMENT
// \/\* is just escape sequence for /*
// [^\*]* - in comment may be whatever except * (asterisk)
// \*\/ is escape sequence for */
preg_match_all("#\/\*[^\*]*\*\/#", $aString, $anArray);
// BETTER VERSION
// http://www.regular-expressions.info/refadv.html - for explanation of ?: and ?!
preg_match_all("#\/\*" . "((?:(?!\*\/).)*)" . "\*\/#", $aString, $anArray);
var_dump($anArray); // easier for debugging than for-loop
輸出,用於更好的版本:
array(2) {
[0]=>
array(2) {
[0]=>
string(8) "/*ghij*/"
[1]=>
string(9) "/*opqrs*/"
}
[1]=>
array(2) {
[0]=>
string(4) "ghij"
[1]=>
string(5) "opqrs"
}
}
您不要碰巧用這個解析PHP源代碼中的註釋塊? – 2010-08-14 11:50:22
我試圖建立一個php代碼格式化程序來顯示使用HTML的php代碼 – jazzdawg 2010-08-14 11:52:12
你在嘗試你的代碼之前發佈它嗎?有一些基本的錯誤,例如:我 - > $我php哪些php解析器應該報告。 – 2010-08-14 11:55:05