【问题标题】:How to replace unlinked images with a link to the image?如何用指向图像的链接替换未链接的图像?
【发布时间】:2011-10-24 09:09:24
【问题描述】:

在 PHP 中

我正在将大量博客文章转换为更适合移动设备的内容。由于这些博客帖子中似乎有很多大图像,我想使用一些正则表达式或其他东西来遍历文章的 HTML,并替换当前未链接到该图像的链接的任何图像。这将允许移动浏览器在没有任何图像的情况下显示文章,而是在图像的位置提供指向图像的链接,从而缩小页面下载大小。

或者,如果有人知道任何可以使格式化这些帖子的工作更容易的 php 类/函数,请提出建议。

任何帮助都会很棒!

【问题讨论】:

标签: php html regex mobile


【解决方案1】:

要解析 HTML,请使用 HTML 解析器。正则表达式不是解析 HTML 或 XML 文档的正确工具。 PHP 的 DOM 提供了 loadHTML() 函数。见http://in2.php.net/manual/en/domdocument.loadhtml.php。使用 DOM 的函数来访问和修改 img 元素。

【讨论】:

    【解决方案2】:

    用 JQuery 代替 PHP 怎么样。这样,它就可以在不同的博客软件中运行。

    你可以做类似...

    $(document).ready( function () {
        $('#content img').each(function () {
            var imageUrl = $(this).attr('src');
            //* Now write codes to delete off the image and put in a link instead. :)
        });
    });
    

    【讨论】:

      【解决方案3】:

      使用正则表达式是这样的:

      $c = 0;
      while(preg_match('/<img src="(.*?)">/', $html, $match) && $c++<100) {
        $html = str_replace($match[0], '<a href="'.$match[1].'">Image '.$c.'</a>');
      }
      

      您也可以使用 preg_replace(保存循环),但循环允许轻松扩展,例如使用图像函数创建缩略图。

      【讨论】:

        猜你喜欢
        • 2010-12-25
        • 2016-03-19
        • 2013-05-17
        • 2014-10-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多