Модераторы: Aliance, skyboy, MoLeX, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Объясните плиз, что не так в моей регулярке 
:(
    Опции темы
Frozen_Coyote
Дата 11.10.2012, 11:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



Приветствую!

Друзья, не могу сообразить, что не так в моей регулярке. Итак, задача: найте в неком html-тексте все теги картинок и обработать их callback функцией. Смысл в том, что нужны картинки как просто <img ..... /> так и <a href....><img ..../ ></a>

Пишу следующее:

Код

$txt = preg_replace_callback("/(<a\s.+?>)?<img\s.+?>(<\/a>)?/uis", "callBackConvertPic", $txt);


логика моя была такова: (<а> открывающий>) - может быть, может не быть <сама картинка> (<a> закрывающий) - может быть, может не быть/ 

Что сделала эта скотина: 

Она посчитала следующий фрагмент HTML-текста удовлетворяющий моему шаблону: 

Код

<a href="http://1111" target="_blank"></a>Тут идет текст целого абзаца, который мне нахрен не втрескался</p><p>&nbsp;</p><p><img.../>


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

Благодарю
PM MAIL   Вверх
Fortop
Дата 11.10.2012, 12:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



попробуй так
(<img[^>]+/>)


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Frozen_Coyote
Дата 11.10.2012, 12:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



не, не работает.. да и смысл каков - мне главное обломать жадность, т.е. найти не прсото ближайший к img тег а, а именно обрамляющий строго каринку.. а он стреляет до первого попавшегося
PM MAIL   Вверх
Fortop
Дата 11.10.2012, 13:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 2200
Регистрация: 13.11.2007
Где: Донецк

Репутация: нет
Всего: 42



Что значит не работает?

Цитата(Frozen_Coyote @  11.10.2012,  11:05 Найти цитируемый пост)
Итак, задача: найте в неком html-тексте все теги картинок

Он не выполняет свою задачу?


--------------------
Мир это Я.
Живее всех живых.
PM MAIL   Вверх
Frozen_Coyote
Дата 11.10.2012, 14:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 230
Регистрация: 20.9.2007

Репутация: нет
Всего: нет



именно! как не преподнеси в паттерн шаблон тега картинки <img\s.+?> или (<img[^>]+/>) - это никак не влияет на захват тега А который находится не рядом а выше (см пример мой). Тег картинки то он ловит что по моему варианту что по твоему - одинаково правильно. А вот если <img> окружить тегом <a> - начинается лажа 
PM MAIL   Вверх
ksnk
Дата 11.10.2012, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


прохожий
****


Профиль
Группа: Комодератор
Сообщений: 6855
Регистрация: 13.4.2007
Где: СПб

Репутация: 12
Всего: 386



К примеру вот так можно 
Код

$txt = preg_replace_callback("/(<a[^>]*>)\s*(<img[^>]*>)\s*(<\/a>)|(<img[^>]*>)/ui", "callBackConvertPic", $txt);

Надо только учитывать, что 1,2,3 - это значение с сылкой, а 4 - чистый img.


--------------------
Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! user posted image
PM MAIL WWW Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Тексты | Следующая тема »


 




[ Время генерации скрипта: 0.0528 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.