2017-01-27 3 views
0

文字列から各画像のsrc属性を読み込み、一致する場合はimgタグ全体を別の形式に置き換えたいと考えています。私の現在の正規表現は機能しません。これはimgタグの先頭を置き換えますが、他のすべての属性はstyle、rel、title、ectのように内部に残ります。ここに私のロジックの例は次のとおりです。各画像のsrcタグを文字列から引っ張ってimgタグ全体を置き換える方法

$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); 

答えて

0

から正規表現を変更:これに

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

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

それは働きます!

関連する問題