Master-X
Форум | Новости | Статьи
Главная » Форум » Программинг, Скрипты, Софт, Сервисы » 
Тема: На PHP нужно получить адрес из <img src="адрес"
цитата
09/06/08 в 12:17
 Proo
Нужно сначала найти тег <img src="адрес"> а потом получить из него адрес фотки

Никто не подскажет как сделать, может парзер какой заюзать?

Заранее спасибо icon_smile.gif
цитата
09/06/08 в 13:03
 schalke
открыть файл(или сохранить и открыть если динамика) и с помощью регулярных выражений вырезать адрес
цитата
09/06/08 в 13:11
 dDan
/<img src=\"(.*)\"/
цитата
09/06/08 в 13:16
 Corex
Код:
preg_match_all('/<img[^>]*src=["\\\']?([^"\\\' >]+\\.(jpeg|jpg|png|gif))["\\\']?\\s*[^>]*>/si', $string, $pics);

$pics[0] - полностью тег img со всеми внутренностями
$pics[1] - только путь к картинке (значение src)
цитата
09/06/08 в 14:30
 _s_[sov]
Corex, зачем же так сложно делать?
dDan +1 Четко ясно понятно.
цитата
09/06/08 в 14:35
 Proo
Всем спасибо и + icon_smile.gif

Тока я пока ждал ответ нашел простой парзер хтмл, сделал за 10 мин, думаю тоже сойдет icon_smile.gif
цитата
09/06/08 в 14:43
 Sha
_s_[sov] писал:
Corex, зачем же так сложно делать?
dDan +1 Четко ясно понятно.

Но неправильно.
цитата
09/06/08 в 14:44
 Corex
_s_[sov] писал:
Corex, зачем же так сложно делать?

Чтобы тег img полностью выцепить, как ТС просил, а иначе не зачем, эт верно. icon_biggrin.gif
цитата
09/06/08 в 14:47
 Sha
Corex писал:
Чтобы тег img полностью выцепить, как ТС просил, а иначе не зачем, эт верно. icon_biggrin.gif

Решение dDan абсолютно неверно, а у Corex почти верно.
цитата
09/06/08 в 14:55
 Sterx
а можно DOM заюзать
выцеплять тег, потом его атрибут
рульная штука, время экономит, но зараза PHP5 нужен
цитата
09/06/08 в 15:11
 Corex
Sha писал:
Решение dDan абсолютно неверно, а у Corex почти верно.

А что именно? Правда интересно, т.к. это кусок (немного урезанный) из рабочего скрипта, может правда что-то пропустил?! Но галеры и rss парсил пока нормально.
цитата
09/06/08 в 15:26
 Sha
Corex писал:
А что именно? Правда интересно, т.к. это кусок (немного урезанный) из рабочего скрипта, может правда что-то пропустил?! Но галеры и rss парсил пока нормально.

Только некоторые контрпримеры:
Код:

<img src="blablabla.gifs">
<img nosrc="blablabla.gif">
<imgdown src="blablabla.gif">

Все вышеуказанные ошибочно распознаются как нормальная картинка blablabla.gif, хотя только первая действительно картинка, но в файле с другим именем.
цитата
09/06/08 в 16:48
 dDan
Бля Sha глянь пример которйы приел ТС тока не надо говорить что моя рега его не съест. Че выебывается и чтото выжимать из себя моя я дохуя умней, как было сказано я так и подсказал.
цитата
09/06/08 в 18:03
 Sha

Твоя рега ест кроме того что написал стартер ещё и всё что не надо. Точнее она ест всё от первого <img src=" до последних двойных кавычек в файле.
цитата
09/06/08 в 18:39
 _s_[sov]
Это с каких это херов неверно у него? Все работает "на ура", что еще нада? Опять появляется тенденция "нада обосраться, но написать на 1 мс быстрее, спрашивается зачем?" icon_smile.gif
цитата
09/06/08 в 18:45
 _s_[sov]
Sha писал:
Твоя рега ест кроме того что написал стартер ещё и всё что не надо. Точнее она ест всё от первого <img src=" до последних двойных кавычек в файле.


в том примере что задал ТС, паттерн dDan работает идеально.
цитата
09/06/08 в 19:11
 dDan
поставь в конце /U или вместо (.*) ([^\"]) и будет счастье..
цитата
09/06/08 в 20:33
 Formator
Вот у вас тёрки на ровном месте icon_smile.gif
Код:

preg_match_all('~<img src="([^"]+)"~',$string,$matches);


Как уже сказали, можно разложить по объектам, т.е. с DOM. Если кому интересно для сложных и гибких проектов, то советую поглядеть сюда https://sourceforge.net/projects/php-html/ и не нужен никакой php5. При чём синтаксис там такой же как и у JQuery (те кто в теме, сразу оценят)

Т.е., чтобы вытощить все src всех img, надо сделать следующее:

Код:

$dom = file_get_dom('http://урл_до_html');
foreach ($link=$dom->find('img'))
echo $link->src;
цитата
09/06/08 в 20:38
 Sterx
да я тоже нечто похожее юзал
но в 5 пхп такое без всяких классов сторонних


Эта страница в полной версии