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+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

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

  Тема Ответов Автор Просмотров Последний ответ
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыAzinomoney.com - гемблинг-партнерка с 65%RS для каждого
Гарантированный заработок на гемблинг-трафике
65 AzinoMoney 29157 Вчера, 19:10
автор: AzinoMoney
Горячая тема (нет новых ответов) Делаю полностью уникальный дизайн для сайтов!
46 AlexDIZ 93430 26.3.2024, 20:03
автор: AlexDIZ
Открытая тема (нет новых ответов) Большие ставки для кликов в Я.Директ. Как удешевить?
2 rownong27 1116 26.3.2024, 14:13
автор: knezevolk
Горячая тема (нет новых ответов) Betatransfer.net - прием платежей для HIGH RISK проектов, интернет эквайринг и мерчант онлайн оплат
52 arendator 34114 26.3.2024, 4:43
автор: arendator
Открытая тема (нет новых ответов) Покупаем рекламу на ваших площадка для 2х интернет сервисов
Покупаем статьи для фотохостинга и мониторинга сайтов.
1 AndrePro 994 25.3.2024, 13:46
автор: Wilkinson


 



RSS Текстовая версия Сейчас: 28.3.2024, 11:55
Дизайн