如何在 1 行中减少这 5 preg_replaces 行?
How to reduce this 5 preg_replaces lines in 1 line?
我认为越少越好,所以我想知道我如何才能 reduce/optimize 这 5 行在 1 行中?
#JPG
$post[message] = preg_replace('/<a href="(.+?)\.jpg" target="_blank">(.+?)<\/a>/', '<img src=".jpg">', $post[message]);
#JPEG
$post[message] = preg_replace('/<a href="(.+?)\.jpeg" target="_blank">(.+?)<\/a>/', '<img src=".jpeg">', $post[message]);
#GIF
$post[message] = preg_replace('/<a href="(.+?)\.gif" target="_blank">(.+?)<\/a>/', '<img src=".gif">', $post[message]);
#PNG
$post[message] = preg_replace('/<a href="(.+?)\.png" target="_blank">(.+?)<\/a>/', '<img src=".png">', $post[message]);
#BMP
$post[message] = preg_replace('/<a href="(.+?)\.bmp" target="_blank">(.+?)<\/a>/', '<img src=".bmp">', $post[message]);
使用交替:
$post[message] = preg_replace('/<a href="(.+?\.(?:jpe?g|gif|png|bmp))" target="_blank">.+?<\/a>/',
'<img src="">', $post[message]);
请注意,我已经删除了第二个捕获组,即锚文本,因为您的正则表达式替换甚至没有使用它。
我认为越少越好,所以我想知道我如何才能 reduce/optimize 这 5 行在 1 行中?
#JPG
$post[message] = preg_replace('/<a href="(.+?)\.jpg" target="_blank">(.+?)<\/a>/', '<img src=".jpg">', $post[message]);
#JPEG
$post[message] = preg_replace('/<a href="(.+?)\.jpeg" target="_blank">(.+?)<\/a>/', '<img src=".jpeg">', $post[message]);
#GIF
$post[message] = preg_replace('/<a href="(.+?)\.gif" target="_blank">(.+?)<\/a>/', '<img src=".gif">', $post[message]);
#PNG
$post[message] = preg_replace('/<a href="(.+?)\.png" target="_blank">(.+?)<\/a>/', '<img src=".png">', $post[message]);
#BMP
$post[message] = preg_replace('/<a href="(.+?)\.bmp" target="_blank">(.+?)<\/a>/', '<img src=".bmp">', $post[message]);
使用交替:
$post[message] = preg_replace('/<a href="(.+?\.(?:jpe?g|gif|png|bmp))" target="_blank">.+?<\/a>/',
'<img src="">', $post[message]);
请注意,我已经删除了第二个捕获组,即锚文本,因为您的正则表达式替换甚至没有使用它。