Php 可变针型
我希望能够用函数的返回替换为我提供函数参数的模式。 我查看了Php 可变针型,php,replace,Php,Replace,我希望能够用函数的返回替换为我提供函数参数的模式。 我查看了preg\u replace,但没有找到编写regex的合适教程 例子: 我想像这样输出字符串: <div> Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod. <p> Content is galery, type is events, id is 30 </p>
preg\u replace
,但没有找到编写regex
的合适教程
例子:
我想像这样输出字符串:
<div>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
<p>
Content is galery, type is events, id is 30
</p>
Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod.
</div>
Lorem ipsum Door sit amet,为精英们献身,为我们奉献。
内容为galery,类型为events,id为30
Lorem ipsum Door sit amet,为精英们献身,为我们奉献。
对于{:::}
构造的“有效”内容了解有限(您可能更希望限制正则表达式,而不仅仅是“不是{
或:
”),以任何方式使用:
您可以使用以下正则表达式:
\{(.*):(.*):(.*)\}
说明:
:\{
需要转义以匹配它{
:将所有内容与匹配:并捕获它(.*):(.*):(.*)
:\}
需要转义以匹配它}
$string='一些文本
{galery:events:30}一些文本
“;
检查它是否与您的模式匹配:
if(preg_match_all("/$regexp/siU", $string, $matches)) {
print_r($matches);
}
是的,是的
工作实例:
如果您需要更多帮助和说明,请告诉我!什么是
$string
?这是一个非常好的入门教程。如果您想理解正则表达式,您需要付出一些努力,但是,很多东西都抓不住您的手。我想用函数替换括号内容来输出给定的字符串return。根据应用程序的复杂程度,您最好使用PHP模板引擎,而不是尝试使用正则表达式自己编写模板引擎。难道没有一个简单的函数可以做到这一点吗?我的意思是,我可以处理三个变量的分解。我只需要将括号内的内容作为单个变量使用,然后用函数结果替换括号中的内容。函数($match)的意外T_函数:(@ValentinDragan:请升级您的PHP版本,PHP 5.3自2009年就已经存在,支持将于明年7月结束。也就是说,您当前唯一的选择是将其定义为命名的帮助函数,或者使用。
echo preg_replace_callback(
'/\{([^}:]+):([^}:]+):([^}:]+)\}/',
function($match){
return generate($match[1],$match[2],$match[3]);
},$string);
if(preg_match_all("/$regexp/siU", $string, $matches)) {
print_r($matches);
}