preg_replace中正则表达式的反向引用

最近遇到一个问题,要将一篇日志中的所有img中的src的取出来,然后根据src的内容重新生成src,做PHP中使用函数preg_replace(),利用了正则表达式的反向引用:

 
  
$content = ' 文字文字<img src="http://www.baidu.com/img/baidu_logo_jr_1008_qx.gif>;其他文字&lt;img src="http://list.image.baidu.com/t/image_category/res/Gangtai/Ye_Xuan.jpg" alt="" width="95" height="115" >; ' ;

function img_convert( $img , $param ){
$filepath = getBlogPicUrl( $img ); // 调用getBlogPicUrl()重新生成新的src值
$param = str_replace ( " \\ " , $param );
$str = ' img src="http://www.codebean.cn/wp-admin/ ' . $filepath . ' " alt="" /> ' ;
}

function getBlogPicUrl( $img ){
// 重新生成src值的代码
}

$content = preg_replace ( " /\/ie " , " img_convert('$2','$1$3') " , $content );

这里使用了正则的反向引用,在调用img_convert()函数时,传给img_convert()的即是正则表达式的分别匹配三个()的值,分别按顺序为$1,$2,$3,也可是\\1,\\2,\\3 这种形式.

另外我在preg_replace的替换部分直接使用了函数img_convert(),这需要在正则表达式中加个参数e。

转载于:https://www.cnblogs.com/codebean/archive/2011/05/27/2059908.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值