Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Тексты > парс тега <img> для lightbox


Автор: leemp 9.11.2009, 16:31
Здравствуйте, обращаюсь за помощью. не могу составить паттерн (php). есть текст, где нужно заменить все

Код
<img src="path/to/image.jpg" alt="" />


на

Код
<a href="path/to/image.jpg" rel="lightbox"><img src="path/to/image.jpg" alt="" /></a>



(встраиваю lightbox, что очевидно) Заранее благодарен.

Автор: patap 9.11.2009, 17:06
http://ua.php.net/manual/en/function.str-replace.php

Автор: Stark 10.11.2009, 00:38
не совсем понял как сделать через str_replace() 
мой вариант preg_replace
Код

        $img = '<img src="path/to/image.jpg" alt="" />';
        $path_pattern = "([a-zA-Z\/.]+)";
        $pattern = "/<img +src=\\\"$path_pattern\\\" +(?:alt=\\\"\\\")* *\/>/";
        $link = preg_replace($pattern, "<a href=\"$1\" rel=\"lightbox\">$0</a>", $img);


это на скоруюю руку, нужно более конкретно знать исходящий текст. Но суть я передал

Автор: skyboy 10.11.2009, 02:08
не совсем понятно, зачем нужна будет конструкция 
Цитата(leemp @  9.11.2009,  15:31 Найти цитируемый пост)
<a href="path/to/image.jpg" rel="lightbox"><img src="path/to/image.jpg" alt="" /></a>

: чтоб в lightbox показывать то, что и так уже видно?
и второй вопрос: а почему нельзя сделать преобразования на стороне клиента? например, средствами jQuery?

Автор: challengerkz 29.2.2012, 12:35
Цитата(leemp @ 9.11.2009,  16:31)
Здравствуйте, обращаюсь за помощью. не могу составить паттерн (php). есть текстhttp://challenger.kz/goods.html где нужно заменить все

Код
<img src="path/to/image.jpg" alt="" />


на

Код
<a href="path/to/image.jpg" rel="lightbox"><img src="path/to/image.jpg" alt="" /></a>



(встраиваю lightbox, что очевидно) Заранее благодарен.

Встал почти аналогичный вопрос

Автор: Gold Dragon 15.3.2012, 21:58
где-то так
Код

$text = '<img src="path/to/image.jpg" alt="" />';
$regex = '#<img[^>]*src=(["\'])([^"\']*)\1[^>]*>#is';

preg_match($regex, $text, $matches);
$link =  '<a href="'.$matches[2].'" rel="lightbox">'.$text.'</a>';

echo $link;



Добавлено @ 22:11
ну или так

Код

$text = '<img src="path/to/image.jpg" alt="" />';
$regex = '#<img[^>]*src=(["\'])([^"\']*)\1[^>]*>#is';

$link = preg_replace($regex,"<a href=\"\\2\" rel=\"lightbox\">".$text."</a>",$text);

echo ($link);


Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)