[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите с регулярными выражениями
7timewriter7
В них я слаб, к сожалению. Язык ПХП
помогите. Нужно найти в тексте все
<img style="некие стили" title="некий тайтл" src="некий путь" alt="альт :)" и далее какие-то ширина, высота и т.п. />


и сделать из него
<a rel="lightbox[roadtrip]" href="некий путь">
<img
style="некие стили" title="некий тайтл" src="некий путь" alt="альт :)" и далее какие-то ширина, высота и т.п. />
</a>




Спустя 1 день, 1 час, 17 минут, 1 секунда (13.03.2011 - 14:33) Winston написал(а):
Вот строка
$str = '<img style="my_style" title="приlolвет" src="http://phpforum.ru/index.php?showtopic=41899" alt="tectтест" width="80" height="70">';


Регулярка будет работать только при условии что все параметры будут идти в строго определенной последовательности style, title, src, alt, width, height

Вот регулярка
preg_match_all("/<\s*img\s+style=(\"|')([a-z_-]+)\\1\s+(?:title=(\"|')([\wа-яё]+)\\3)?\s+src=(\"|')([&\?=\w\/:_\.-]+)\\5\s+(?:alt=(\"|')([\wа-яё]+)\\7)?\s+width=(\"|')([0-9]+)\\9\s+height=(\"|')([0-9]+)\\11\s*>/iu", $str, $matches);


Вывод результата
echo '<a rel="lightbox[roadtrip]" href="'.$matches[6][0].'">
<img style="'
.$matches[2][0].'" title="'.$matches[4][0].'" src="'.$matches[6][0].'" alt="'.$matches[8][0].'" width="'.$matches[10][0].'" height="'.$matches[12][0].'"/>
</a>'
;

Спустя 11 минут, 19 секунд (13.03.2011 - 14:44) 7timewriter7 написал(а):
так мне не выбрать значения, а в вопросе звучало "Нужно найти в тексте все" т.е. вхождения.
строку где-то в таком ракурсе:
"/<img.+?src="(.+?)".+?>/"

и заменить на чтобы было с
<a rel="lightbox[roadtrip]" href="некий путь">
при том "некий путь" чтобы совпадал как в img src, так и в a href
Подход не могу найти как зделать user posted image

Спустя 13 минут, 38 секунд (13.03.2011 - 14:58) Winston написал(а):
    $str = '<img style="my_style" title="приlolвет" src="http://phpforum.ru/index.php?showtopic=41899" alt="tectтест" width="80" height="70">';
preg_match_all("/<img.*src=(\"|')([&\?=\w\/:_\.-]+)\\1.*>/iu", $str, $matches);

echo '<a rel="lightbox[roadtrip]" href="'.$matches[2][0].'">';

Спустя 5 минут, 24 секунды (13.03.2011 - 15:03) 7timewriter7 написал(а):
сенкс, ща мозг будет думать и разбираться.
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.