【发布时间】: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);
【问题讨论】: