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



 

Здравствуйте, гость (

| Вход | Регистрация )

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


Помогите, пожалуйста, составить рег. выражение для 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


КАк-то так (не мое, но у меня работало):
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


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


Решение
Код
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


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

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


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


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


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

решение плохое. регулярки сами по себе создают неслабую нагрузку, а Вы зачем-то ещё alt и class туда впихнули.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 10.1.2015, 14:47; Ответить: Rombi
Сообщение #7


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

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


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


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

зачем это нужно? тем более, что точка/звёздочка ищет значение, которое нигде не используется.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Rombi
Rombi
Topic Starter сообщение 10.1.2015, 15:44; Ответить: Rombi
Сообщение #9


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


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


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

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


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) Обучение Email Рассылкам + Софт Для Автоматизации (100к в сутки с сервера)
9 zennoboss 4584 Вчера, 21:03
автор: 100ftd
Открытая тема (нет новых ответов) Посоветуйте массажер для спины и шеи
9 Boymaster 868 Вчера, 13:56
автор: Vmir
Открытая тема (нет новых ответов) Какой % отказов нормален для сайта?
14 Aloof 3373 Вчера, 13:50
автор: Vmir
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыЛюблю творить! Статьи для вас
Копирайтинг- моя жизнь!
312 Zoya83 190679 Вчера, 7:51
автор: DimonX
Открытая тема (нет новых ответов) Тема имеет прикрепленные файлыСовременный сервис для быстрого и безопасного обмена валют.
15 CryptoTims 4951 22.4.2024, 22:32
автор: CryptoTims


 



RSS Текстовая версия Сейчас: 24.4.2024, 3:48
Дизайн