HighSlide для всех картинок в тексте

Ragnarok
На сайте с 25.06.2010
Offline
226
429

Задача:

есть текст, в котором встречаются картинки. необходимо для каждой из них добавить обработчик HighSlide

нужно получить вместо

<img width="100" height="100" src="/sites/default/files/3_2.png" />

нечто такое:

<a href="/sites/default/files/3_2.png" class="highslide" onclick="return hs.expand(this)"><img width="100" height="100" src="/sites/default/files/3_2.png" alt="Кликните чтобы увеличить" title="Кликните чтобы увеличить" /></a>

заменить " />" на " alt="Кликните чтобы увеличить" title="Кликните чтобы увеличить" /></a>" можно через str_ireplace

аналогично, и "<img" на "<a href="" class="highslide" onclick="return hs.expand(this)"><img "

а вот как подставить урл картинки в href тега a?

картинок в тексте может быть несколько

---------- Добавлено 28.02.2012 в 21:16 ----------

подозреваю, что как-то регуляркой выбрать в массив все урлы всех картинок, а потом заменить, подставляя по порядку.. но как?

//TODO: перестать откладывать на потом
Ragnarok
На сайте с 25.06.2010
Offline
226
#1

Сделал, вдруг ещё кому поможет:


preg_match_all('#<img[^>]+src\s*=\s*(["\'])([^\s"]+)\\1[^>]+/*>#im',$content,$imgurls);


for($i=0;$i<count($imgurls[0]); $i++) {
$imglinks[$i]="<a href=\"".$imgurls[2][$i]."\" class=\"highslide\" onclick=\"return hs.expand(this)\">".$imgurls[0][$i]."</a>";
}

$content=str_ireplace($imgurls[0],$imglinks,$content);

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий