X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость ( Вход | Регистрация )

Открыть тему
Тема закрыта
> Помогите с регуляркой для изображений
Rombi
Rombi
Topic Starter сообщение 10.1.2015, 1:50; Ответить: Rombi
Сообщение #1


3TAJIOH
******

Группа: Active User
Сообщений: 1042
Регистрация: 14.6.2010
Из: Самара
Поблагодарили: 244 раза
Репутация:   45  


Помогите, пожалуйста, составить рег. выражение для preg_match_all чтобы спарсить адрес изображения.
HTML выглядить так:
Код
<img src="http://static.newsland.com/news_images/1482/big_1482756.jpg" alt="Тут Альт" class="image">


--------------------
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Drupal_way
Drupal_way
сообщение 10.1.2015, 2:17; Ответить: Drupal_way
Сообщение #2


Бывалый
****

Группа: User
Сообщений: 410
Регистрация: 17.12.2011
Из: Ростов-на-Дону
Поблагодарили: 73 раза
Репутация:   6  


КАк-то так (не мое, но у меня работало):
preg_match_all('#<img.*src="(.*)".*>#isU', $content, $match);

//Проверка и получение только ссылки
if (strlen($imgosn)<1){preg_match_all('#<img.*src="(.*)".*>#isU', $content, $match);
@$imgosn = $match[1][0];
}
//если нужен полностью html-код, то так
@$imgosn = $match[0][0];

вот так вытянуть все теги IMG из текста
$regex = "/<img[^>]+src\s*=\s*[\"']\/?([^\"']+)[\"'][^>]*\>/";
preg_match ($regex, $text, $matches);
$images = (count($matches)) ? $matches : array();
А вот так удалить из текста первый тег IMG (или любое другое кол-во - от последнего параметра зависит)
$text= preg_replace('/<img[^>]+\>/', '', $text, 1);


--------------------


Поблагодарили: (2)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
xoopw
xoopw
сообщение 10.1.2015, 2:46; Ответить: xoopw
Сообщение #3


Частый гость
**


Группа: User
Сообщений: 50
Регистрация: 2.8.2014
Поблагодарили: 3 раза
Репутация:   0  


<img[^>]*src=['\"](.*?)['\"][^>]*>
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 10.1.2015, 4:01; Ответить: Rombi
Сообщение #4


3TAJIOH
******

Группа: Active User
Сообщений: 1042
Регистрация: 14.6.2010
Из: Самара
Поблагодарили: 244 раза
Репутация:   45  


Решение
Код
preg_match_all("'<img src=\"(\S*.(jpg))\" alt=\"Новость на .*\" class=\"image\"'isU", $response, $img);
$img = $img[1][0];


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
AmoSeo
AmoSeo
сообщение 10.1.2015, 6:41; Ответить: AmoSeo
Сообщение #5


Завсегдатай
*****

Группа: Active User
Сообщений: 523
Регистрация: 10.6.2011
Поблагодарили: 130 раз
Репутация:   22  


Код
.......(\S*.(jpg)).....

Вы точно уверены что всегда картинки будут только jpg? Есть также png, jpeg, gif, bmp и т.д.


--------------------
Предоставляю услуги: Content Downloader - настройка парсера для любого сайта. (опыт с 2011 г.)
Наполнение магазинов товарами: Opencart, SimplaCMS, Webasyst и т.д.


Поблагодарили: (1)
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 10.1.2015, 7:51; Ответить: x64
Сообщение #6


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3432
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2750 раз
Репутация:   289  


Цитата(Rombi @ 10.1.2015, 3:01) *
Решение

решение плохое. регулярки сами по себе создают неслабую нагрузку, а Вы зачем-то ещё alt и class туда впихнули.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 10.1.2015, 14:47; Ответить: Rombi
Сообщение #7


3TAJIOH
******

Группа: Active User
Сообщений: 1042
Регистрация: 14.6.2010
Из: Самара
Поблагодарили: 244 раза
Репутация:   45  


AmoSeo, там все в с таким расширением.

x64, а зачем мне парсить все подряд картинки и потом отсеивать?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 10.1.2015, 15:11; Ответить: x64
Сообщение #8


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3432
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2750 раз
Репутация:   289  


так Ваш вариант как раз и парсит «всё подряд»
Код
\" alt=\"Новость на .*\" class=\"image\"

зачем это нужно? тем более, что точка/звёздочка ищет значение, которое нигде не используется.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 10.1.2015, 15:44; Ответить: Rombi
Сообщение #9


3TAJIOH
******

Группа: Active User
Сообщений: 1042
Регистрация: 14.6.2010
Из: Самара
Поблагодарили: 244 раза
Репутация:   45  


Как это? Разве .* не означает любой фрагмент?


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
x64
x64
сообщение 10.1.2015, 18:01; Ответить: x64
Сообщение #10


F.A.L.L.O.U.T.
*******

Группа: Super Moderator
Сообщений: 3432
Регистрация: 30.6.2011
Из: Железнодорожный (Балашиха)
Поблагодарили: 2750 раз
Репутация:   289  


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


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Найду для вас домены
16 MakDonald 2770 Сегодня, 9:06
автор: alekspik
Горячая тема (нет новых ответов) ВНИМАНИЕ: Тема имеет прикрепленные файлыПишу тексты для всех и каждого. Цены не кусаются, качество не хромает.
Единственное правило: клиент всегда доволен.
122 Hellnar 50351 Сегодня, 9:04
автор: koroluk1990
Открытая тема (нет новых ответов) Помогите выбрать ноутбук
Ноутбук для детей
15 kstnews 323 Сегодня, 8:29
автор: kstnews
Открытая тема (нет новых ответов) Чем сжимать картинки для сайта без потери качества
1st-finstep.ru - Заработок в сети и методы продвижения сайта
16 komarik_vlad 1708 Вчера, 20:11
автор: komarik_vlad
Горячая тема (нет новых ответов) Leongram - бесплатная программа для продвижения в Instagram
91 DeOne 18378 Вчера, 19:27
автор: DeOne


 



RSS Текстовая версия Сейчас: 18.12.2017, 9:20
Дизайн