我试图在body标记之后对内容使用短代码函数。
preg_match("/<body[^>]*>(.*?)<\/body>/is", $html, $matches);
$html= preg_replace("/<body[^>]*>(.*?)<\/body>/is",run_shortcodes($matches[1]), $body);
echo $html;这是可行的,但如果可能的话,我想用preg_replace反向引用来完成这个任务。
我尝试过这样的方法,但显然是错误的。
$html= preg_replace("/<body[^>]*>(.*?)<\/body>/is",run_shortcodes('$1'), $body);请有人展示一个可能使用反向引用的例子。
任何帮助都是非常感谢的。
发布于 2014-09-29 17:19:17
下面是一个例子:
preg_match("/<body[^>]*>(.*?)<\/body>/is", $html, $matches);
$newBody = run_shortcodes($matches[1]);
echo preg_replace('/(.*<body[^>]*>)(.*)(<\/body>.*)/is', '${1}'.$newBody.'${3}', $html);你也可以尝试:
$html = preg_replace_callback("/<body[^>]*>(.*?)<\/body>/is", 'run_shortcodes', $subject);
echo $html;发布于 2014-09-28 15:26:32
您需要使用preg_replace_callback
https://stackoverflow.com/questions/26086390
复制相似问题