preg_replace обработка тега img

phprus

Moderator
Команда форума
preg_replace обработка тега img

Здравствуйте.
Помогите, пожалуйста, написать регулярное выражение, которое должно заменять теги img в строке на значение атрибутов alt или title у этих тегов, а если таких атрибутов нет, то на пустую строку.

P.S. пожалуйста, не отправляйте в FAQ или документацию я там был, но все равно все, что я пишу у меня не работает.
 

SiMM

Новичок
> но все равно все, что я пишу у меня не работает.
Скорее, больше похоже на "но всё равно сам я делать нихрена не буду". Подаяния - за углом, ближе к форуму Offtopic.
 

nikit87

Новичок
не. передумал. читай синтаксис и поймешь. // я вот до сих пор не понимаю почему одним хватает только мануала, а другим не хватает?? вроде он один на всех....
 

Vladson

Сильнобухер
nikit87
Одни пробуют, ошибаются и потом опять пробуют, а если танцы с бубном ни к чему не привели то идут на форум...

Другие почитают, понимают что ничего не поняли и идут на форум ...

(мануал ИМХО не панацея, бывают вопросы ответов на которые там или нету или они там "замаскированы")
 

nikit87

Новичок
по-мойму в мане даже есть именно такое выражение. именно для такой ситуации. просто некоторые читают ман а некоторые делаю вид что читают. этот вопрос решался много-много раз.
 

Vladson

Сильнобухер
phprus
Простейший вариант только для ознакомления (не советую к практике)
$text = preg_replace('/\[img\](.*?)\[\/img\]/', '<img src="\\1" alt="\\1" />', $text);
 

nikit87

Новичок
Vladson
ты вообще вопрос читаешь?? или просто из мана взял строчку?? ты хоть посмотри что эта регулярка делает сначала. это типа для форумов всяких нужно чтоб теги типа заменять на нормальные
 

Vladson

Сильнобухер
nikit87
Я сам дал бы рабочий код, но Фанат сказал что это не правильно и обосновал свою точку зрения, по этому я пробую на практике, работает его подход или нет.... (он заключается в следующем)

Допустим я дам готовый рабочий код, он поставит и забудет, а потом будет спрашивать тут про тег "b", потом про "i"...
А между тем этот пример объясняет (на языке для даунов) как работают регулярные вырожения и позволяет даже придурку сообразить как сделать то что ему надо ?

Я дал направление где копать, можно сказать разжевал а ему только осталось проглатить...
 

nikit87

Новичок
Vladson
Фанат вроде никогда и не пишет код никакой. даже что-то похожее на проблему автора топика. он посылает в ман (туда же откуда ты взял этот код). но при этом в мане написано что для чего в этой регулярке. а у тебя кусок кода который без объяснения не понятен новичку.
 

SelenIT

IT-лунатик :)
Vladson
По моему, того, что твой пример объясняет "на языке для даунов", явно недостаточно для решения сабжевой задачи (по сути обратной той, которую решает пример) человеком, делающим в регулярных выражениях лишь первые шаги. Тем более задача действительно не совсем тривиальная - там еще условие есть...

phprus
Вот рабочее (кажется) решение для части задачи
заменять теги img в строке на значение атрибутов alt или title у этих тегов
(точнее - того из этих двух атрибутов, который встретится первым):
PHP:
echo preg_replace('#<img.*?\s(?:alt|title)=([\'"]?)(.*?)\1.*?>#si', '\\2', $text);
 

Vladson

Сильнобухер
Автор оригинала: SelenIT
По моему, того, что твой пример объясняет "на языке для даунов", явно недостаточно для решения сабжевой задачи
Через месяц после того как я начал изучать РНР (я и знать не знал даже какая разница между str_replace и ereg_replace) я увидел этот код и после экспериментов с ним у меня и мысли небыло чтоб запостить на форум что-то типа сабжевой задачи...

(nikit87 я пошёл не на сто процентов по пути Фанат'a а только частично)
 

SelenIT

IT-лунатик :)
Через месяц после того как я начал изучать РНР ... я увидел этот код и после экспериментов с ним...
[off]Значит, ты либо действительно гений, либо исключительный везунчик с отличной интуицией. Лично мне для эффективных поисков методом тыка нужно хотя бы минимально понимать то, с чем я экспериментирую - без этого "эксперименты" превращаются в танцы с бубном на кофейной гуще. Те же PCRE, к примеру, я активно использую почти два года, но до сих пор не могу сказать, что понимаю их хотя бы на 80% (хотя на дауна вроде не похож...)
Подход же Фаната состоит как раз в том, чтобы подтолкнуть человека к пониманию, а не к беспомощному "тыканию куда попало".[/off]
 

Vladson

Сильнобухер
Автор оригинала: SelenIT
Значит, ты либо действительно гений, либо исключительный везунчик с отличной интуицией.
Это "тренированная" интуиция, я с 89-го программирую на ASM

Автор оригинала: SelenIT
Подход же Фаната состоит как раз в том, чтобы подтолкнуть человека к пониманию, а не к беспомощному "тыканию куда попало".
Если он читал мануал (а он настаивает на том что читал) то единственное в чём он мог запутаться это в (.*?) а всё остальное там описано настолько понятным языком что не то что даун, а полный-полный "додлик" может разобраться...
 

SelenIT

IT-лунатик :)
Vladson
Если он читал мануал... <а также ссылки из faq-а на статьи>
[off]...то согласись, что он уже должен был увидеть энное количество примеров такого же уровня сложности и такой же степени касательства к сабжевой задаче :)
Какова же тогда информационная ценность твоего примера?[/off]
 

Vladson

Сильнобухер
SelenIT
Он мог читать мануал без коментов (не на сайте, а в .chm файле) и мог не видеть примеров (в том числе и того что привёл я)
 

SelenIT

IT-лунатик :)
Vladson
Ну так давал бы ссылку на онлайновый ман, а не цитату, так же оторванную от комментов :). К тому же, далеко не все примеры в комментах могут быть образцом для подражания...

И предлагаю на этом с "методическим" оффтопом завязать.
 

Vladson

Сильнобухер
Автор оригинала: SelenIT
К тому же, далеко не все примеры в комментах могут быть образцом для подражания...
Но некоторые из них могут помочь и не слабо, мне например иногда помогали даже отрывки настолько левого кода который едва работает (главное не паниковать, а мучать его дальше)
Автор оригинала: SelenIT
И предлагаю на этом с "методическим" оффтопом завязать.
Учитывая активность автора темы, все наши выкрутасы были безсмысленны и завязать надо было уже давно (так что это мой последний пост в этой теме)
 

phprus

Moderator
Команда форума
SelenIT
Спасибо за помощь буду пробовать.

SiMM
Если у человека чтото не получается Это не значит что он ничего делать не будет и ничего не прорбовал перед тем как спросить.

Vladson
Уж извините господин Vladson но мне срочно пришлось кое куда съездить на 2 дня и поэтому я не мог посещать форум.
Теги b и i ине так вырезать не надо и я не на столько тупой как вы думаете.
 

SiMM

Новичок
> Если у человека чтото не получается Это не значит что он ничего делать не будет и ничего не прорбовал перед тем как спросить.
Если у человека что-то не получается, он показывает свой код и задаёт конкретные вопросы. У тебя вопроса не обнаружено (помогите написать - это не вопрос и не описание того, что у тебя не получается).
 
Сверху