PHP基于正则批量替换Img中src内容实现获取缩略图的功能示例

本文实例讲述了PHP基于正则批量替换Img中src内容实现获取缩略图的功能。分享给大家供大家参考,具体如下:

这里PHP用正则批量替换Img中src内容,实现获取图片路径缩略图的功能

网上很多正则表达式只能获取或者替换一个img的src内容,或者只能替换固定的字符串,要动态替换多个图片内容的试了几个小时才解决。

/**
* 图片地址替换成压缩URL
* @param string $content 内容
* @param string $suffix 后缀
*/
function get_img_thumb_url($content="",$suffix="!c550x260.jpg")
{
$pregRule = "/<[img|IMG].*?src=[\'|\"](.*?(?:[\.jpg|\.jpeg|\.png|\.gif|\.bmp]))[\'|\"].*?[\/]?>/";
$content = preg_replace($pregRule, '<img src="${1}'.$suffix.'" style="max-width:100%">', $content);
return $content;
}

实例使用代码:

$content = '<a href="#" rel="external nofollow" rel="external nofollow" ><img class="center" src="https://xxx.com/styles/images/default.jpg"></a>'
.'<p><img class="center" src="https://img.xxx.com/images/219_Ig5eZI.jpg" style="max-width: 100%;"></p>';
$newct = get_img_thumb_url($content);
print_r($newct);

输出结果:

代码如下:

<a href="#" rel="external nofollow" rel="external nofollow" ><img src="https://xxx.com/styles/images/default.jpg!c550x260.jpg" style="max-width:100%"></a><p><img src="https://img.xxx.com/images/219_Ig5eZI.jpg!c550x260.jpg" style="max-width:100%"></p>

PS:这里再为大家提供2款非常方便的正则表达式工具供大家参考使用:

JavaScript正则表达式在线测试工具:
http://tools.jb51.net/regex/javascript

正则表达式在线生成工具:
http://tools.jb51.net/regex/create_reg

更多关于PHP相关内容感兴趣的读者可查看本站专题:《php正则表达式用法总结》、《PHP数组(Array)操作技巧大全》、《PHP基本语法入门教程》、《php字符串(string)用法总结》、《php+mysql数据库操作入门教程》及《php常见数据库操作技巧汇总》

希望本文所述对大家PHP程序设计有所帮助。

(0)

相关推荐

  • PHP 字符串正则替换函数preg_replace使用说明

    1. preg_replace() $msg = preg_replace("/<style>.+<\/style>/is", "", $msg); -----删除<style></style>和中间的部分 $msg = preg_replace("/<[^>]+>/", "", $msg); -----是删除<>和中间的内容 i (PCRE_CAS

  • php正则替换变量指定字符的方法

    本文实例讲述了php正则替换变量指定字符的方法.分享给大家供大家参考.具体如下: 这里介绍三种常用方法. 方法一: <?php $str = preg_quote('(银子)'); $txt = '我的呢称(银子)'; echo preg_replace("/($str)/","<span style='color:#f00;'>$1</span>",$txt); ?> 方法二: <?php $str = quotemeta

  • php中正则替换函数ereg_replace用法实例

    本文实例讲述了php中正则替换函数ereg_replace用法.分享给大家供大家参考.具体如下: 下面的实例是利用php 正则替换函数 ereg_replace来把指定的字符替换成我想需要的字符实例,代码如下: 复制代码 代码如下: $num = 'www.jb51.net'; $string = "this string has four words. <br>"; $string = ereg_replace ('four', $num, $string); echo

  • php中preg_replace正则替换用法分析【一次替换多个值】

    本文实例讲述了php中preg_replace正则替换用法.分享给大家供大家参考,具体如下: 1.php 的 preg_replace 与 str_replace 都是默认 /g 的,全部替换 2.如果需要使用正则表达式 需要使用preg_replace <?php $a = "abc defa bcd ef"; $b= preg_replace("/\t|a/","",$a); echo($b); /* 输出: bc def bcd ef

  • PHP preg_replace() 正则替换所有符合条件的字符串

    需要我们用程序处理的数据并不总是预先以数据库思维设计的,或者说是无法用数据库的结构去存储的. 比如模版引擎解析模版.垃圾敏感信息过滤等等. 一般这种情况,我们用正则按我们的规则去匹配preg_match.替换preg_replace. 但一般的应用中,无非是些数据库CRUD,正则摆弄的机会很少. 根据前面说的,两种场景:统计分析,用匹配:处理用替换. PHP preg_replace() 正则替换,与Javascript 正则替换不同,PHP preg_replace() 默认就是替换所有符号匹

  • php正则取img标记中任意属性(正则替换去掉或改变图片img标记中的任意属性)

    因有一项目新闻发布系统,数据库内容字段中存储的是原图的路径(当然还有其他文字内容啦,内容里插图时,存的是图片路径),但前台想使用缩略图,琢磨1小时余,得到以下结果,可解决问题(取img标签会了,取别的标签任意属性自然也会了): 复制代码 代码如下: <?php /*正则取图片img标记中的任意属性*/ $word = '<p height="22" align="cenetr">111 22</p> <img src="

  • PHP实现通过正则表达式替换回调的内容标签

    本文实例讲述了PHP实现通过正则表达式替换回调的内容标签.分享给大家供大家参考.具体实现方法如下: function my_wp_plugin_tag_action($content,$tag,$function,$args = FALSE) { // match all regular expressions preg_match_all($tag,$content,$matches); if (count($matches)>0) { // filter duplicates $matche

  • PHP html标签正则替换并可自定义正则规则

    复制代码 代码如下: <?php function pregstring($str){ $strtemp = trim($str); $search = array( "|'|Uis", "|<script[^>].*?</script>|Uis", // 去掉 javascript "|\[字定义\].*\[/字定义\]|Uis", // 去掉缩略图 "|<[\/\!].*?[^<>]*

  • 详解PHP正则表达式替换实现(PHP preg_replace,PHP preg_replace)

    PHP正则表达式替换实现是如何的呢?首先向你介绍下PHP preg_replace,PHP preg_replace的使用是我们实现的方法,那么对于PHP正则表达式替换实现过程我们从实例入手. PHP正则表达式替换的相关概念: preg_replace:执行正则表达式的搜索和替换 mixed preg_replace ( mixed pattern, mixed replacement, mixed subject [, int limit]) preg_replace:允许你替换字符串中匹配到

  • PHP正则替换函数preg_replace和preg_replace_callback使用总结

    在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换). 详情介绍参考博文:PHP函数preg_replace() 正则替换所有符合条件的字符串 应用举例如下: 复制代码 代码如下: <?php /**  * 模板解析类  */ class Template { public function compile($template) { // if逻辑   $template

  • php正则替换处理HTML页面的方法

    本文实例讲述了php正则替换处理HTML页面的方法.分享给大家供大家参考.具体如下: <?php if(!defined('BASEPATH')) exit('No direct script access allowed'); /** * HTML替换处理类,考虑如下几种替换 * 1. img src : '/<img(.+?)src=([\'\" ])?(.+?)([ >]+?)/i' * 2. a href : '/<a(.+?)href=([\'\" ]

  • 如何在PHP中使用正则表达式进行查找替换

    1. preg_match - 执行一个正则表达式匹配int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )搜索subject与pattern给定的正则表达式的一个匹配. pattern:要搜索的模式,字符串类型.subject :输入字符串. matches:如果提供了参数matches,它将被填充为搜索结果. $matche

  • PHP把空格、换行符、中文逗号等替换成英文逗号的正则表达式

    在开发的过程中,经常会遇到需要给别人提供一个输入框,然后别人输入一些ID,或者关键字的东西,例如wordpress的后台的标签输入框: 这个就是只是判断英文状态下的逗号,要是有人不小心输入了中文状态下的逗号怎么办?小数点怎么办? 于是我就用正则写了一个表达式,把带有空格换行符之类的替换成逗号. 把提交的id带有空格换行符之类的替换成逗号,然后用explode函数切换成数组. 复制代码 代码如下: $ids=$_POST["ID"];$id= preg_replace("/(\

随机推荐