Форум программистов, компьютерный форум, киберфорум
PHP: RegExp
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.52/50: Рейтинг темы: голосов - 50, средняя оценка - 4.52
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
1

Поиск url изображений

20.07.2012, 12:20. Показов 9994. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Здравствуйте, никак не могу составить регулярку для поиска url изображений на странице.

~<img [^>]* />~ такое выводит мне полностью тэг img со всем содержимым, но мне нужен только url, указанный в src.
Для меня это дремучий лес, но я попробовал такое выражение: ~src=""*/""~. Вроде бы должно искаться все, что идет после src и в кавычках.
Помогите мне, пожалуйста, составить правильное выражение. Заранее спасибо
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.07.2012, 12:20
Ответы с готовыми решениями:

Смена изображений с URL
Здравствуйте, помогите найти решение вопросу по смене картинок с ссылками, в боковом виджете? Чтобы...

Загрузка изображений по URL на удаленный сервер
Добрый день! помогите с загрузкой картинок на сервер с url-а. :) В общем Есть переменная которая...

Загрузка изображений по URL с разбивкой на дерриктории
Всем привет. Есть необходимость скачать несколько десятков тысяч картинок на компьютер. У меня...

Алгоритм загрузки изображений из excel по ссылке URL в реквизит основное изображение
Добрый день. Есть стандартная обработка &quot;ЗагрузкаДанныхИзТабличногоДокумента&quot; В событии при записи...

4
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
20.07.2012, 17:06 2
PHP
1
2
3
4
5
6
if (preg_match_all('/<img(?:\\s[^<>]*?)?\\bsrc\\s*=\\s*(?|"([^"]*)"|\'([^\']*)\'|([^<>\'"\\s]*))[^<>]*>/i', $text, $m))
    print_r($m[1]);
 
// ошибка:
// было: "(^["]*)"
// надо: "([^"]*)"
1
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
20.07.2012, 18:59  [ТС] 3
Спасибо большое, а можно чуть-чуть объяснить? Я пытался разобраться с помощью руководств, но так и не понял, к сожалению. И в $m будет только первое вхождение подстроки или все? И если все, то как к ним обращаться? $m[1], $m[2]... или $m[1][0], $m[1][1] ... ?
0
13208 / 6596 / 1041
Регистрация: 10.01.2008
Сообщений: 15,069
21.07.2012, 07:30 4
Код
/
    <img               # «<img»
    (?:                # (пропускаем другие возможные атрибуты)
        \s             #   пробельный символ
        [^<>]*?        #   любые символы, кроме «<» и «>», сколько угодно
    )?                 # необязательно
    \b                 # граница слова
    src                # «src»
    \s*                # необязательно пробельные символы
    =                  # «=»
    \s*                # необязательно пробельные символы
    (?|                # значение атрибута ловим в $1 с помощью сброса ветвления
        "([^"]*)"      #   значение в кавычках
    |                  # или
        '([^']*)'      #   значение в апострофах
    |                  # или
        ([^<>'"\s]*)   #   тупо значение без кавычек и апострофов
    )                  # 
    [^<>]*             # любые символы, кроме «<» и «>» (другие атрибуты)
    >                  # «>»
/ix
preg_match_all() ловит все совпадения. В $m в данном случае будет двумерный массив вида $m[номер-скобки][номер-вхождения], благодаря чему мы можем выбрать все совпадения скобки 1 из всех совпавших подстрок: $m[1]. Если указать в preg_match_all() флаг PREG_SET_ORDER, то получится инач картина: $m[номер-вхождения][номер-скобки], где мы наоборот можем выбрать все совпавшие скобки из очередной совпавшей подстроки.

Не по теме:

PS: В выражении была ошибка. Надо "([^"]*)" вместо "(^["]*)" .

2
1 / 1 / 0
Регистрация: 30.11.2011
Сообщений: 16
21.07.2012, 07:39  [ТС] 5
Вы мне очень помогли, большое спасибо) Регулярки все так же остались тайным и страшным, но именно это выражение я понял, еще раз спасибо.
1
21.07.2012, 07:39
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.07.2012, 07:39
Помогаю со студенческими работами здесь

Открыть URL (там ссылка, которая совершает переход на другой URL) и вытянуть новый URL
Стоит задача по одному URL получить другой Пробовал открывать URL через webbrowser, но это не...

Поиск изображений
Решил тут написать небольшую программу для просмотра фотографий (надо же с чего-то начинать), и...

Поиск url в html
Приветствую всех. помогите справиться с проблемкой. Никак не могу подобрать регулярное выражение...

Поиск url с параметрами
Здравствуйте, необходимо найти все url содержащие знак вопроса, например: &lt;a...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru