2012-02-06 2 views
0

Как бы заменить это:манипулируя IMG SRC с регулярным выражением -PHP

http://example.com/myfolder/files/year/month/imagename-widthxheight.imageextension 

к этому:

http://example.com/myfolder/files/year/month/imagename-300x300.imageextension 

любая помощь?

+0

Эта часть "WIDTHxHEIGHT" не текст, а "старой" резолюции, как 123x456, верно? – djot

+0

Да. он является переменным. пользователи загружают разные размеры фото. система производит 300x300 превью. изменение размеров и посевов. – marcieng

ответ

1

Вы можете попробовать этот

// if your src has widthxheight are specified literally like that you may try 
echo preg_replace("/\W{0,1}(width).*(height)/i","-300x300","http://www.mysite.com/myfolder/files/year/month/imagename-widthxheight.imageextension"); 
// if your src has widthxheight are specified in int val you may try  
echo preg_replace("/\W{0,1}(\d{1,7}).*(\d{1,7})/i","-300x300","http://www.mysite.com/myfolder/files/year/month/imagename-123x456.imageextension"); 

фактическое значение -300x300 будет зависеть от фактической потребности. Поэтому я считаю, что лучше всего передать эти значения через переменные.

+0

Позвольте мне показать какое-то настоящее содержание: ' A Torinói ló - The Turin Horse - Torino atı, Tarr'ın 2011 yapımı filmi. IMDB sayfası burada. ' – marcieng

+0

Если вы хотите работать с полным тегом изображения, то вы можете использовать это тоже echo preg_replace ("/((\ d {1,7}) x (\ d {1,7}) \.)/" , "300x300.", ' A Torinói ló - The Turin Horse - Torino atı, Tarr'ın 2011 yapımı filmi.'); –

1

Как насчет:

$new_img = preg_replace("~([^/]+)-widthxheight(\.[^.]+)$~i","$1-300x300$2", 
"http://www.mysite.com/myfolder/files/year/month/imagename-widthxheight.imageextension"); 
Смежные вопросы