使用 preg_replace [PHP] 获取 img 标签详细信息

萨达达达达斯达

这是我的内容:

<p><img src="http://localhost/contents/uploads/2017/11/1.jpg" width="215" height="1515"></p>

这是我的 PHP 代码:

function convert_the_content($content){
    $content = preg_replace('/<p><img.+src=[\'"]([^\'"]+)[\'"].*>/i', "<p class=\"uploaded-img\"><img class=\"lazy-load\" data-src=\"$1\" /></p>", $content);
    return $content;
}

我使用我的代码为<p>标签和<img>标签添加一个类并转换src=""data-src="".

我的代码从<img>标签中删除了宽度和高度属性的问题,所以我的问题是如何更改我的代码以使其工作并获取这些详细信息?

注意:我的内容可能有很多<img><p>标签。

戈登

如果你只有这个非常精确的 HTML 片段,你可以通过这样做更简单

$html = <<< HTML
<p><img src="http://localhost/contents/uploads/2017/11/1.jpg" width="215" height="1515"></p>
HTML;

$html = str_replace('<p>', '<p class="foo">', $html);
$html = str_replace(' src=', ' data-src=', $html);
echo $html;

这将输出

<p class="foo"><img data-src="http://localhost/contents/uploads/2017/11/1.jpg" width="215" height="1515"></p>

如果您尝试转换任意 HTML,请考虑使用 DOM 解析器

<?php
$html = <<< HTML
<html>
  <body>
    <p><img src="http://localhost/contents/uploads/2017/11/1.jpg" width="215" height="1515"></p>
    <p><img width="215" height="1515" src="http://localhost/contents/uploads/2017/11/1.png"></p>
      <p   ><img
        class="blah"
            height="1515" 
            width="215"
       src="http://localhost/contents/uploads/2017/11/1.png"

       >
    </p>
  </body>
</html>
HTML;

$dom = new DOMDocument;
libxml_use_internal_errors(true);
$dom->loadHTML($html);
libxml_use_internal_errors(false);

$xpath = new DOMXPath($dom);
foreach ($xpath->evaluate('//p[img]') as $paragraphWithImage) {
    $paragraphWithImage->setAttribute('class', 'foo');
    foreach ($paragraphWithImage->getElementsByTagName('img') as $image) {
        $image->setAttribute('class', trim('bar ' . $image->getAttribute('class')));
        $image->setAttribute('data-src', $image->getAttribute('src'));
        $image->removeAttribute('src');
    }
};

echo $dom->saveHTML($dom->documentElement);

输出:

<html><body>
    <p class="foo"><img width="215" height="1515" class="bar" data-src="http://localhost/contents/uploads/2017/11/1.jpg"></p>
    <p class="foo"><img width="215" height="1515" class="bar" data-src="http://localhost/contents/uploads/2017/11/1.png"></p>
      <p class="foo"><img class="bar blah" height="1515" width="215" data-src="http://localhost/contents/uploads/2017/11/1.png"></p>
  </body></html>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在PHP中的img标签上使用preg_replace类和src?

来自分类Dev

使用PHP获取YouTube视频评论详细信息

来自分类Dev

如何使用mmjmenu PHP API获取患者详细信息?

来自分类Dev

如何使用 Razorpay PHP API 获取付款详细信息?

来自分类Dev

在preg_replace之前获取更多信息

来自分类Dev

使用preg_replace删除<script>标签

来自分类Dev

如何从img文件获取内核详细信息

来自分类Dev

使用ServiceStack的IAuthRepository获取详细信息

来自分类Dev

使用LINQ获取XDocument的详细信息

来自分类Dev

使用 openlayers 获取 trkpt 详细信息

来自分类Dev

在PHP中使用API v3在Youtube上获取视频详细信息

来自分类Dev

贝宝(Paypal)使用PHP cURL获取交易详细信息

来自分类Dev

获取是在标签[IMG] [/ IMG] PHP的值

来自分类Dev

使用preg_replace获取和替换属性

来自分类Dev

PHP preg_replace

来自分类Dev

使用php preg_replace替换最接近的匹配词

来自分类Dev

在PHP的preg_replace()中使用每个匹配项

来自分类Dev

与preg_replace一起使用的PHP substr

来自分类Dev

在PHP的preg_replace中使用反向引用

来自分类Dev

PHP Regex使用preg_replace减少了空间

来自分类Dev

使用Preg_Replace PHP的条件运算符

来自分类Dev

如何在PHP中使用preg_replace()?

来自分类Dev

数组:使用 preg_replace 和排序过滤 [PHP - WordPress]

来自分类Dev

在 PHP 中使用 preg_replace - 奇怪的行为

来自分类Dev

PHP preg_replace RegEx删除空的段落标签

来自分类Dev

从PHP链中获取详细信息值

来自分类Dev

标签preg_replace

来自分类Dev

如何在地图上搜索并使用Postgresql,geoserver并打开第3层和php获取详细信息?

来自分类Dev

使用Jenkins API获取构建配置详细信息

Related 相关文章

热门标签

归档