【问题标题】:How to pull each image src tag froma string and replace entire img tag如何从字符串中提取每个图像 src 标签并替换整个 img 标签
【发布时间】:2017-01-27 02:29:54
【问题描述】:

我希望能够从字符串中读取每个图像的 src 属性,如果匹配,则将整个 img 标记替换为不同的格式。我当前的正则表达式不起作用。它替换了 img 标签的开头,但保留了所有其他属性,如 style、rel、title 等。这是我的逻辑示例:

$message = 'I AM SENDING YOU AND IMAGE <image src="https://www.google.com/logos/doodles/2017/bessie-colemans-125th-birthday-5751652702224384-scta.png" rel="test image" style="display: block;" /> SEE THE IMAGE?';

function replacelinks($message) {
    $ret = preg_replace_callback('/(<img\s+src=["\'])([^"\']+)(["\']\s+[^>]+>)/', function ($m) { $url = parse_url($m[1]); if ($url['path'].$url['query'] == "/logos/doodles/2017/bessie-colemans-125th-birthday-5751652702224384-scta.png") { return '{IMG::'.$url['path'].$url['query'].'}'; } }, $message);
return $ret;
}

echo replacelinks($message);

【问题讨论】:

    标签: php regex


    【解决方案1】:

    将正则表达式更改为:

    /(<img\s+src=["\'])([^"\']+)(["\']\s+[^>]+>)/
    

    到这里:

    ~<img[^>]*?src="(.*?(\w+))".*?>~
    

    有效!

    【讨论】:

      猜你喜欢
      • 2012-11-26
      • 2013-04-11
      • 2016-09-09
      • 2013-07-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多