preg_replace 第二个参数用函数的问题.
$var=preg_replace('/\[image-(\d+)\]/U',$group->imageElement(\${1}),$content)代码中第二个参数用...
$var = preg_replace('/\[image-(\d+)\]/U', $group->imageElement(\${1}),$content)
代码中第二个参数用了一个对象方法,然后把前面匹配的引用作为参数不成功.请问各位高手如何解决? 展开
代码中第二个参数用了一个对象方法,然后把前面匹配的引用作为参数不成功.请问各位高手如何解决? 展开
3个回答
展开全部
使用e修饰符就可以,但是你的语句比较复杂,你可能需要反复调试一下,下面是手册里面的例子:
<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
?>
正在表达式里面的e修饰符,替换内容仍然是一个字符串,但是系统在进行替换前要eval调用一下,所以可以执行函数,只是注意里面多次转义的书写,不知道下面这样是否可行,可能需要你调试改进:
$var = preg_replace('/\[image-(\d+)\]/Ue', '$group->imageElement(\${1})',$content)
<?php
preg_replace("/(<\/?)(\w+)([^>]*>)/e",
"'\\1'.strtoupper('\\2').'\\3'",
$html_body);
?>
正在表达式里面的e修饰符,替换内容仍然是一个字符串,但是系统在进行替换前要eval调用一下,所以可以执行函数,只是注意里面多次转义的书写,不知道下面这样是否可行,可能需要你调试改进:
$var = preg_replace('/\[image-(\d+)\]/Ue', '$group->imageElement(\${1})',$content)
来自:求助得到的回答
展开全部
你这个方法$group->imageElement(\${1}),返回了什么啊,你自己输出之后,在发提问吧。。。
比如echo $group->imageElement(\${1});结果是123123$1123123,
那你就发$var = preg_replace('/\[image-(\d+)\]/U', ‘123123${1}123123’,$content);好了,
现在看既然出错了,那么$group->imageElement(\${1})出来的值就有问题了
比如echo $group->imageElement(\${1});结果是123123$1123123,
那你就发$var = preg_replace('/\[image-(\d+)\]/U', ‘123123${1}123123’,$content);好了,
现在看既然出错了,那么$group->imageElement(\${1})出来的值就有问题了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
,,把参数提出去,赋值给新的变量, 再把新的变量放到这个函数里
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询