$source_content = preg_replace($search, "'"
. $this->_quote_replace($this->left_delimiter) . 'php'
. "' . str_repeat(\"\n\", substr_count('\\0', \"\n\")) .'"
. $this->_quote_replace($this->right_delimiter)
. "'"
, $source_content);
replacement 输出为
string '<{php' . str_repeat("
", substr_count('0', "
")) .'}>' (length=54)
preg_replace_callback
无非就是把替换的操作传到另一个callback函数处理而已。这个callback函数会被传入一个匹配结果的数组,和
preg_match
的第三个参数得到的数组结构是一样的。然后return
替换后的结果。preg_replace_callback
会把callback函数return
的结果替换掉匹配的那部分,然后再把结果作为返回值。