#php #optimization #preg-replace
#php #оптимизация #preg-replace
Вопрос:
Я считаю, что минимальный лучше, поэтому мне интересно, как я могу уменьшить / оптимизировать эти 5 строк в 1 строке?
#JPG
$post[message] = preg_replace('/<a href="(. ?).jpg" target="_blank">(. ?)</a>/', '<img src="$1.jpg">', $post[message]);
#JPEG
$post[message] = preg_replace('/<a href="(. ?).jpeg" target="_blank">(. ?)</a>/', '<img src="$1.jpeg">', $post[message]);
#GIF
$post[message] = preg_replace('/<a href="(. ?).gif" target="_blank">(. ?)</a>/', '<img src="$1.gif">', $post[message]);
#PNG
$post[message] = preg_replace('/<a href="(. ?).png" target="_blank">(. ?)</a>/', '<img src="$1.png">', $post[message]);
#BMP
$post[message] = preg_replace('/<a href="(. ?).bmp" target="_blank">(. ?)</a>/', '<img src="$1.bmp">', $post[message]);
Комментарии:
1. что вы хотите от этого?
Ответ №1:
Используйте чередование:
$post[message] = preg_replace('/<a href="(. ?.(?:jpe?g|gif|png|bmp))" target="_blank">. ?</a>/',
'<img src="$1">', $post[message]);
Обратите внимание, что я удалил вторую группу захвата, которая была текстом привязки, поскольку ваша замена регулярных выражений даже не использовала ее.
Комментарии:
1. Большое спасибо, Тим, за вашу помощь и замечание. Ваш код работает правильно, и это именно то, что я искал 🙂