我有一个字符串,可以包含多个匹配(由百分比标记包围的任何单词)和一个替换数组 – 每个替换的键是正则表达式的匹配.有些代码可能会更好地解释……
$str = "PHP %foo% my %bar% in!";
$rep = array(
  'foo' => 'does','bar' => 'head'
);

期望的结果是:

$str = "PHP does my head in!"

我尝试了以下,没有一个工作:

$res = preg_replace('/\%([a-z_]+)\%/',$rep[$1],$str);
$res = preg_replace('/\%([a-z_]+)\%/',$rep['$1'],$rep[\1],$rep['\1'],$str);

因此,我转向Stack Overflow寻求帮助.任何接受者?

echo preg_replace('/%([a-z_]+)%/e','$rep["$1"]',$str);

得到:

PHP does my head in!

见the docs for the modifier ‘e’.

PHP preg_replace – 使用匹配作为键从数组中查找替换的更多相关文章

  1. php – 黑客网站 – 加密代码

    您可以计算某些变量的值,并开始了解您的方位.因此,最初的目的是使用脚本中的有效负载调用wgcdonznijh()函数,这是通过pre_replace中的嵌入式函数调用来实现的,主题是表达式中的/e.如果您使用十六进制解码结果,那么您将在这里:以上内容被截断,但您有另一个有效负载作为新preg_replace函数的主题.再次由于它有可能执行.它正在使用array_map上的回调来进一步解码传递给eval的有效负载.eval的工资负荷如下所示:哪个看起来被截断了……

  2. php – 使用preg_replace命名反向引用

    很简单我似乎没有找到关于PHP的preg_replace()支持命名反向引用的任何定义:这是一个微不足道的例子,但我想知道是否不支持这种语法(?P=name).语法问题或不存在的功能?

  3. php – preg_replace”with”?

    我的代码删除了开始标签,但现在我想替换结尾的带有换行符的标签我该怎么做?

  4. php – preg_replace导致美元符号被删除

    我有一个电子邮件系统,用户在那里写一条消息并发送消息.我刚发现的主要问题是考虑这个代码并考虑$findemail结果的电子邮件的这个输入:$email消息将导致:我怎样才能解决这个问题?

  5. php – 如何添加/进入preg_replace模式

    我做了这个简单的函数来过滤数据.我添加了允许包含的符号但我不知道如何添加/符号您可以使用反斜杠来逃避它:或者使用其他字符作为分隔符:

  6. php – preg_replace – 从字符串中删除不需要的字符以返回数值

    我讨厌正则表达式,我希望有人可以帮助一个与preg_replace一起使用的regualar表达式.我想从字符串中删除不需要的characers,只使用preg_replace返回一个数值.字符串格式可以如下:一些文字100100英镑的一些文字一些文字100一些文字非常感谢[]中的^表示除以下内容之外的任何内容编辑删除多余的

  7. php正则表达式匹配html标签之外

    我正在html页面上创建一个preg_replace.我的模式旨在为html中的某些单词添加周围标记.但是,有时我的正则表达式会修改html标记.例如,当我尝试替换此文本时:因此,yasar读取yasar,我的正则表达式也替换了锚标记的alt属性中的yasar.我正在使用的当前preg_replace()看起来像这样:如何制作正则表达式,使其与html标签内的任何内容都不匹配?

  8. php – 不推荐使用:preg_replace():不推荐使用/ e修饰符,而是使用preg_replace_callback

    我尝试过的:更改:至:错误:callback需要是一个带有一个参数的函数,这是一个匹配数组.您可以通过任何类型的callback,包括anonymousfunction.

  9. 如何在php中替换除下划线和句点之外的所有特殊字符?

    任何人都可以告诉我如何替换字符串中的所有特殊字符,除了下划线和句号符号.而且我一直在努力了解如何使这个替换模式阅读PHP手册,这对初学者来说太困惑了像我一样,是否有任何其他文档或教程,使初学者容易,所以我不必发布这样的问题,每次我想使用这个功能时麻烦你的人?这就是我所拥有的它取代了所有特殊字符,但我想除了_和..把_和.对于否定的字符集([^…

  10. preg_replace()函数该函数执行正则表达式的搜索和替换

    该函数执行正则表达式的搜索和替换。举例说“\\11”,将会使preg_replace()搞不清楚是想要一个“\\1”的逆向引用后面跟着一个数字“1”还是一个“\\11”的逆向引用。

随机推荐

  1. PHP个人网站架设连环讲(一)

    先下一个OmnihttpdProffesinalV2.06,装上就有PHP4beta3可以用了。PHP4给我们带来一个简单的方法,就是使用SESSION(会话)级变量。但是如果不是PHP4又该怎么办?我们可以假设某人在15分钟以内对你的网页的请求都不属于一个新的人次,这样你可以做个计数的过程存在INC里,在每一个页面引用,访客第一次进入时将访问时间送到cookie里。以后每个页面被访问时都检查cookie上次访问时间值。

  2. PHP函数学习之PHP函数点评

    PHP函数使用说明,应用举例,精简点评,希望对您学习php有所帮助

  3. ecshop2.7.3 在php5.4下的各种错误问题处理

    将方法内的函数,分拆为2个部分。这个和gd库没有一点关系,是ecshop程序的问题。会出现这种问题,不外乎就是当前会员的session或者程序对cookie的处理存在漏洞。进过本地测试,includes\modules\integrates\ecshop.php这个整合自身会员的类中没有重写integrate.php中的check_cookie()方法导致,验证cookie时返回的username为空,丢失了登录状态,在ecshop.php中重写了此方法就可以了。把他加到ecshop.php的最后面去就可

  4. NT IIS下用ODBC连接数据库

    $connection=intodbc_connect建立数据库连接,$query_string="查询记录的条件"如:$query_string="select*fromtable"用$cur=intodbc_exec检索数据库,将记录集放入$cur变量中。再用while{$var1=odbc_result;$var2=odbc_result;...}读取odbc_exec()返回的数据集$cur。最后是odbc_close关闭数据库的连接。odbc_result()函数是取当前记录的指定字段值。

  5. PHP使用JpGraph绘制折线图操作示例【附源码下载】

    这篇文章主要介绍了PHP使用JpGraph绘制折线图操作,结合实例形式分析了php使用JpGraph的相关操作技巧与注意事项,并附带源码供读者下载参考,需要的朋友可以参考下

  6. zen_cart实现支付前生成订单的方法

    这篇文章主要介绍了zen_cart实现支付前生成订单的方法,结合实例形式详细分析了zen_cart支付前生成订单的具体步骤与相关实现技巧,需要的朋友可以参考下

  7. Thinkphp5框架实现获取数据库数据到视图的方法

    这篇文章主要介绍了Thinkphp5框架实现获取数据库数据到视图的方法,涉及thinkPHP5数据库配置、读取、模型操作及视图调用相关操作技巧,需要的朋友可以参考下

  8. PHP+jquery+CSS制作头像登录窗(仿QQ登陆)

    本篇文章介绍了PHP结合jQ和CSS制作头像登录窗(仿QQ登陆),实现了类似QQ的登陆界面,很有参考价值,有需要的朋友可以了解一下。

  9. 基于win2003虚拟机中apache服务器的访问

    下面小编就为大家带来一篇基于win2003虚拟机中apache服务器的访问。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  10. Yii2中组件的注册与创建方法

    这篇文章主要介绍了Yii2之组件的注册与创建的实现方法,非常不错,具有参考借鉴价值,需要的朋友可以参考下

返回
顶部