PHP自动添加或者替换文章中的IMG标签的alt title 属性代码实例

时间:2019-05-21 作者:佚名 编辑:xiaoxin 来源:不甘平庸网

在php开发中,SEO优化 一般需要把文章标题设置为 img 的alt title 属性,那么内容多个 img 时,手动过于繁琐。那么如何用程序自动添加或替换呢?

实现原理

根据以上需求,那么使用正则找内容的 img 标签 ,进行添加或者替换即可。

<?php
$str ='<div class="wkBody">
                        <div id="panelSummary" class="abstract">
    
                            <span class="font28">摘要:</span>
                            作为阿根廷种植面积第二大的红葡萄品种,伯纳达的发展潜力越来越大,逐渐成为阿根廷的希望之星。
                            <div id="pnlSummaryEN" class="abs-en">
        
                                <span class="font28">ABSTRACT:</span>
                                Bonarda is Argentina’s second most widely planted red grape, which may make a big splash in the coming years.
                            
    </div>
                        
</div>
                        <p>
    说到阿根廷葡萄酒,大家最先想到的可能是著名的<a href="http://www.wine-world.com/s/grape?q=马尔贝克&amp;token=ba782698-e5be-44f8-8e54-09eac16f02a9&amp;from=user" target="_blank">马尔贝克</a>(Malbec),毫无疑问,这个品种在阿根廷占据着绝对的主导地位。但是,除了马尔贝克以外,阿根廷还有一个发展潜力巨大的葡萄品种,它是阿根廷的希望之星——阿根廷种植面积第二大的葡萄品种伯纳达(Bonarda)。<br>
    <br>
    <strong>1. 特征</strong></p>
<p style="text-align: center;">
    <strong><a target="_blank" href="/culture/pic/22571cf7-ee6b-4176-8efb-e02e4e9dd947/0"><img alt="除了马尔贝克,阿根廷还有伯纳达" title="除了马尔贝克,阿根廷还有伯纳达" src="/UserFiles/images/01-bonarda-161114.jpg" style="width: 375px; height: 500px;"></a></strong></p>
<p style="text-align: center;">
    <span style="font-size:12px;">图片来源:Wine Folly</span></p>
<p>
    伯纳达葡萄酒初闻时果香扑鼻,带有糖渍黑樱桃、新鲜蓝莓和李子的香气。紧接着,香气变得更加复杂,散发出紫罗兰、五香、多香果和牡丹的气息。最后,经过橡木桶的酒还会有轻微的雪茄盒、甜无花果和巧克力等烟熏气息。入口时,伯纳达葡萄酒最先表现的也是果味,酒体中等,鲜酸多汁,单宁较低,余味顺滑,十分易饮。<br>
    <br>
    伯纳达与马尔贝克一样拥有饱满的颜色,但伯纳达的单宁含量更低,酸度更高、更多汁。如果你不喜欢使用橡木桶的葡萄酒,那你可能会青睐伯纳达葡萄酒,因为大多数伯纳达葡萄酒少用甚至不用橡木桶。另外,伯纳达葡萄酒的酒精度很少超过13.5%。<br>
    <br>
    <strong>2. 配餐</strong></p>
<p style="text-align: center;">
    <strong><a target="_blank" href="/culture/pic/22571cf7-ee6b-4176-8efb-e02e4e9dd947/1"><img alt="除了马尔贝克,阿根廷还有伯纳达" title="除了马尔贝克,阿根廷还有伯纳达" src="/UserFiles/images/02-cedar-plank-salmon-161115.jpg" style="width: 550px; height: 333px;"></a><div style="width: 550px;" class="addivstyle"><div id="testdiv" style="width: 550px;" class="adseconddiv"><a href="http://mall.wine-world.com/activity/activitypromotion10" target="_blank"><img src="http://images.wine-world.com/images/wineworldlogo.jpg" style="left:2px;top:2px;width:102px;position: absolute;border: none;background: none;"><span style="position: absolute;left:120px;right:85px;top:10px;color: #FFF;text-align:left;">开抢50元代金券,醉惠中级庄盛宴<br>30款中级庄美酒任君挑选,领券后下单直减50元!</span><span class="qukankanstyle" style="top: 20px;">去看看</span></a></div></div></strong></p>
<p style="text-align: center;">
    <span style="font-size:12px;">图片来源:Wine Folly</span></p>
<p>
    伯纳达葡萄酒低单宁、高酸的特点使其可以与多种食物搭配,如鸡肉、牛肉、猪肉和鱼排等;而酒中轻微的棕色香料的风味也可以与菠萝、芒果、照烧汁等完美结合。<br>
    <br>
    <strong>3. 此伯纳达非彼伯纳达</strong><br>
    <br>
    阿根廷的伯纳达与其它地方的伯纳达很可能并不是同一个葡萄品种,也许阿根廷的伯纳达本不该被称为“伯纳达”。DNA检测表明阿根廷的伯纳达与法国萨瓦(Savoie)产区一种叫“Deuce Noir”的稀有葡萄是同一品种,跟纳帕谷(Napa Valley)古老葡萄园中的沙帮乐(Charbono)也是相同的品种。<br>
    <br>
    实际上,真正的伯纳达葡萄指的是一组意大利葡萄,至少分为6种,其中最出名的是皮埃蒙特伯纳达(Bonarda Piemontese)。更容易引起混淆的是,意大利伦巴第(Lombardy)的奥尔特莱伯·帕韦斯(Oltrepo Pavese)产区所产的标有“伯纳达”的葡萄酒实际上是用科罗帝纳(Croatina)酿制而成的;<a href="http://www.wine-world.com/s/area?q=皮埃蒙特&amp;token=36d3dd49-745b-43f8-8bce-1b90ce3118b0&amp;from=user" target="_blank">皮埃蒙特</a>(Piedmont)有些酿酒师酿制的标有“伯纳达”的葡萄酒其实是用一种叫茹拉(Uva Rara)的葡萄酿制的。<br>
    <br>
    所以,如果下次有人纠正你对阿根廷伯纳达的叫法时,不妨问问他们以上这两种标有“伯纳达”的葡萄酒为什么是用别的葡萄酿制的,他们最好能说出它们之间的联系。<span style="font-size:12px;">(文/Christina)</span></p>
                        
                        <div id="pnlWineVersion2">
    
                              <p>声明:本文版权属于“红酒世界网”,转载请保留版权信息。关注微信号“wine-world”,随时随地了解最新红酒资讯。</p>
                        
</div>
                    </div>';


$preg = "/<img.*?src=[\"|\'](.*?)[\"|\'].*?>/";
$alt = "1234";
$title = "123456";
$img = '<img src="$1" alt="'.$alt.'"title="'.$title.'">';
$data = preg_replace($preg,$img,$str);
var_dump($data);
相关阅读
  • php实现的网页正文智能提取算法代码实例类
    php实现的网页正文智能提取算法代码实例类
    php实现的提取网页正文部分:最近研究百度结果页的资讯采集,其中关键环节就是从采集回的页面中提取出文章。因为难点在于如何去识别并保留网页中的文章部分,而且删除其它... [详情]
  • PHP解决如抢购并发问题的几种实现方法
    PHP解决如抢购并发问题的几种实现方法
    对于商品抢购等并发场景下,可能会出现超卖的现象,这时就需要解决并发所带来的这些问题了在PHP语言中并没有原生的提供并发的解决方案,因此就需要借助其他方式来实现并发... [详情]
  • php中session引起的脚本阻塞问题解决办法
    这个问题很多做php开发朋友应该都有遇到过,一个启用了session_start 页面,由于执行时间过长。导致通一个用户访问,另外一个很简单的启用session_start页面一直阻塞着。 直到第一个页面执行完了。第二个页面才可以... [详情]
  • PHP正则替换函数preg_replace和preg_replace_callback使用总结
    在编写PHP模板引擎工具类时,以前常用的一个正则替换函数为 preg_replace(),加上正则修饰符 /e,就能够执行强大的回调函数,实现模板引擎编译(其实就是字符串替换)。... [详情]
  • php上传文件大小限制问题解决方法:post_max_size对大小的影响
    今天在操作php上传的时候发现了一个问题,就是当php脚步上传的文件大小超过php.ini中post_max_size的限制的时候页面不会给出提醒,文件也上传失败,这个问题感觉应该算是一个另类,今天跟大家分享一下。... [详情]
  • php中的filesize读取图片大小代码实例
    filesize() 函数返回指定文件的大小。 若成功,则返回文件大小的字节数。若失败,则返回 false 并生成一条 E_WARNING 级的错误。本文为你详解php如何读取图片详细信息。... [详情]
  • php用Imagick模块完美实现GIF动画缩略图代码实例
    php用Imagick模块完美实现GIF动画缩略图代码实例
    缩略图是个很常用的功能。它的实现并不复杂,但如果原图是GIF动画的话,问题就会变得繁琐一点。下面看看如何用PHP中的Imagick模块来完美实现GIF动画缩略图……... [详情]
  • PHP怎样判断一个gif图片是否为动态图片(动画)?
    如何使用PHP来判断一个gif图片是否为动态图片(动画)?首先想到的是使用getimagesize()函数来看type值,发现都是gif,所以这个办法是不可行的。下面是作者在网上看到的一个函数,经测试,可以用来判断gif是否为动图。... [详情]
  • Linux和windows7下安装php的imagick和imagemagick扩展教程
    最近的PHP项目中,需要用到切图和缩图的效果,在Linux测试服务器上很轻松的就安装好php imagick扩展。但是在本地windows开发环境,安装过程遇到好多问题,在此与大家分享。... [详情]
  • php服务器500错误无输出,快速定位错误代码万能调试方法
    网站线下调试没有问题,放到线上报500错误,无输出,无报错,日志正常,如何才能快速定位错误代码?经过网上搜索,找到一种方法:万能调试代码法,问题得到解决。... [详情]
  • php使用fsockopen读取分段数据出现多余字符的解决方法
    使用fsockopen读取数据时遇到了一个神奇的问题,具体情况如下:请注意上面那些标红的4个字符,它们每隔一段数据就会出现一次,但是用其他的方法如curl,file_get_contents等取回的数据则没有这些玩意。换成其他的网站... [详情]
  • php去掉fsockopen返回结果中的HTTP头信息的方法
    去掉fsockopen返回结果中的HTTP头信息的两种方法:1、【使用split或substr,strpos截断】在返回的内容中HTTP头信息与正文内容是以两个“换行回车”隔开的所以我们可以在此截断,取之后的内容。2、【先取Content-Length... [详情]
  • PHP环境下Memcache的使用方法详解
    Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在... [详情]
  • php在用file_get_contents抓取网页时出现乱码的2种解决方式
    今天自己在写一个程序,抓取别人的网页,之前公司有些功能也会需要,但是今天在抓取网页的时候发现了一个问题用file_get_contents抓取网页发现乱码情况。于是用转换编码$contents = iconv("gb2312", "utf-8//IGNORE... [详情]
  • php iconv函数在gb232与utf-8之间转码时出错断掉的解决方法
    最近在做一个采集程序,需要用到iconv函数把抓取来过的gb2312编码的页面转成utf-8, 发现只有用iconv函数把抓取过来的数据一转码数据就会无缘无故的少一部分。让我郁闷了好一会儿,去网上一查资料才知道这是iconv函... [详情]
  • php操作excel的类:PHPExcel 1.8.0使用方法
    首先到phpexcel官网上下载最新的phpexcel类,下载解压缩一个classes文件夹,里面包含了PHPExcel.php和PHPExcel的文件夹,这个类文件和文件夹是我们需要的,把classes解压到你项目的一个目录中,重名名为phpexcel,代... [详情]
  • PHP字符串定义的几种方式
    如果遇到需要多行书写的字符串怎么办,比如我们要定义一段JS脚本,当然如果把脚本写在一行里是没问题的,但是如果脚本比较长一些,而且其中会出现很多转义符号的话,脚本最终成型的话,很有可能成了一锅黏粥了。不但... [详情]
  • PHP匿名函数详解
    PHP匿名函数 匿名函数(Anonymous functions),也叫闭包函数(closures),允许 临时创建一个没有指定名称的函数。最经常用作回调函数(callback)的参数。 当然,也有其他应用的情况。... [详情]
  • php cli模式传递和获取参数的方法
    php cli模式传递和获取参数的方法
    在命令行里输入程序参数来更改其运行方式是很常见的做法。你也可以对CLI程序这样做。PHP CLI带有两个特殊的变量,专门用来达到这个。目的:一个是$argv变量,它通过命令行... [详情]
  • php通过QRCode类库创建中间带网站LOGO的二维码实例
    我们要生成二维码都需要借助一些类库来实现了,下面我介绍利用PHP QR Code生成二维码吧,生成方法很简单,下面我来介绍一下.利用php类库PHP QR Code来实现,不需要装额外的php扩展,首先下载类库包,有时候地址打不开,地址... [详情]
PHP心得推荐
频道推荐
本周推荐
点击排行