[Regexp] форум.локал мне в помощь
preg_match_all("/<img[^>]*src=['\"]?([^ \"']*)['\"]?[^>]*>/i",$text,$sub) - так вытаскиваются имена файлов. С альтами посложнее, мне в лом думать
---
"Vyroba umelych lidi, slecno, je tovarni tajemstvi."
Karel Capek
ни фига - так весь тэг со всем содержимым вытаскивается:( А надо только имя...
йопанаврот, ты смотрел, что находится в массиве $sub? сделай print_r $sub и радуйся жизни. Я там скобки неспроста поставил
вроде разобрался... не в регекспе, а как имя получить:) Сенькс:) А с альтами почему сложнее?
1) сначала может быть альт, а потом уже src
2) в самом альте могут присутствовать кавычки, конечно же, они заслешованы, но выдирать их и убирать слеши имхо геморрой
не... всё же сначала срц:) Всё ок... я проверил - вроде у меня во всех хтмлях кавычки в виде " стоят
preg_match_all("/<img[^>]*src=['\"]?([^ \"']*)['\"]?[^>]*alt=['\"]?([^ \"']*)['\"]?[^>]*>/i",$text,$sub)
йопт... и ведь работает
ну да, а почему бы и не работать, регексп-то простейший
ню-ню
я когда начинал регекспы ботать, тоже в дрожь бросало от того, как скопище слешей, скобок и прочих спецсимволов может что-то осмысленное делать
а теперь легко достаточно такого рода регекспы пишу.
/<img[^>]*src=['\"]?([^ \"']*)['\"]?[^>]*alt=['\"]?([^ \"']*)['\"]?[^>]*>/iпробуем разобрать, чтобы проще понять было:
[^>] - любой символ, кроме закрывающей скобки (обозначим $not_end)
['\"]? - "тут может быть кавычка, а может и не быть" (обозначим $quote)
[^ \"'] - любой символ, кроме кавычек и пробела, которыми ограничивается урл или альт (обозначим $any_symb)
и получаем
/<img$not_end*src=$quote($any_symb*)$quote$not_end*alt=$quote($any_symb*)$quote$not_end*>/i
mastering regular expressions. revisited
- не работает когда нет альта
- не работает
<img src="123.jpg" alt="abc'qwe">
ага, 1-это я тупанул маленько, 2-выяснили, что такого не бывает, тка как все кавычкм там через &xxx;
Эх... кстати... а альты не везде есть:)
лови, так и без альта сработает
/<img[^>]*src=['\"]?([^ \"']*)['\"]?[^>]*(?:alt=['\"]?([^ \"']*)['\"]?)?[^>]*>/i
<img alt="alt" src="src">
мне в лом, тем более что автору треда этого не надо
На самом дел проще и, возможно быстрее, сделать это в два этапа: сначала выдрать все теги img, а потом из них по отдельности вытащить alt'ы и src'ы.
Неа... может, и проще, но эти img в итоге надо оставить на тех же местах, только переписать в них src, а сами файлы перекидать в базу
Выдрать — не означало удалить их из исдожного текста
Оставить комментарий
uncle17
Кто рюхает - напишите, а...есть html, из него надо вытащить все имена картинок и все альты к ним. Имена могут быть в кавычках, а могуть и нет. Альты могут кавычки содержать. А могут и нет:)
Заранее thx