![]() |
Модераторы: Aliance, skyboy, MoLeX, ksnk |
![]() ![]() ![]() |
|
gendelman |
|
||||||
Новичок Профиль Группа: Участник Сообщений: 7 Регистрация: 7.4.2008 Репутация: нет Всего: нет |
Задумал я в html-документе в теге <img...> все пути к изображению на абсолютные заменить а заодно и атрибуты тега на свой манер исправить. И все, естественно, ЗА ОДИН ПРОХОД.
Заранее не известно, какого вида пути к картинкам в конкретном документе, но понятно, варианта есть три:
Сначала всё казалось простым - брать из тега картинку, (не зависимо - полный у неё путь или нет) и заменять на уже с подставленным полным путем. Но так не годиться - вдруг это изображение с внешнего рессурса? Т.е полные пути трогать не надо. Можно, чтобы регулярка обходила теги с полным путем, но тогда не заменятся атрибуты тега. Для компенсации недостающих путей заранее заготовил:
Вот предмет мучений:
Получилось, что если путь к картике полный то он вместе с названием изображения помещается в $1 функции, а $2 и $3 остаются пустыми, если относительный, то в $2, пустые $1 и $3, ну а если пути вообще нет, то в $3, $1 и $2 - пусто. Полученный результат я собирался как-то использовать в параметре replacement, т.е. в зависимости от наличия/отсутствия содержимого в $1 $2 $3 подставлять туда $full или $short или ничего не подставлять но... Начинает казаться, что $1 $2 $3 - это исключительно внутренние переменные функции preg_replace или я чего-то не понимаю? Или я вообще не в правильном направлении двигаюсь? В два-то приёма я сделал, но душа просит в один. ![]() ![]() ![]() Подскажите решение. |
||||||
|
|||||||
teroni |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 381 Регистрация: 15.5.2007 Где: Днепропетровск Репутация: 8 Всего: 22 |
Посмотрите в сторону модификатора /e в шаблоне и проверки на пустоту в замещаемом выражении.
|
|||
|
||||
Wolf1994 |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1701 Регистрация: 5.10.2004 Репутация: 1 Всего: 29 |
Для сложных условий лучше всего подходит: preg_replace_callback.
|
|||
|
||||
![]() ![]() ![]() |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Тексты | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |