PHP 实现自动添加或者替换 内容的IMG标签的 alt title 属性

Posted homehtml

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了PHP 实现自动添加或者替换 内容的IMG标签的 alt title 属性相关的知识,希望对你有一定的参考价值。

应用场景

在cms 开发中,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);

本文转载于:猿2048→https://www.mk2048.com/blog/blog.php?id=hh1ca0bi1bb

以上是关于PHP 实现自动添加或者替换 内容的IMG标签的 alt title 属性的主要内容,如果未能解决你的问题,请参考以下文章

php正则表达式提取img alt/title标签并替换

PHP怎么给文本图片地址加IMG标签

使用 Freemarker 从内容中减去 img 标签

PHP - 替换 <img> 标签并返回 src

php简单正则匹配Img标签src内容采集?

用jq或者js自动获取标签a内容然后写入标签b