Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] preg_match_all выборка всех <img без тегов title и alt / 9 сообщений из 9, страница 1 из 1
13.11.2012, 15:30
    #38036430
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
подскажите кто нибудь, я не могу догнать,
с регулярками давно не работал и не помню/илинезнаю как вернее,
через отдельный класс или подвыражение: "[^(alt=)]" или "^(alt=)"

Код: php
1.
2.
      $pattern = "/<img[^<>]*src=['|\"](.*)['|\"][^<>]*^(alt=)[^<>]*[>|\/>]{1}/isU";
      $data = preg_replace($pattern,"<img src=\"$1\" alt=\"лучшее фото\" />",$data);
...
Рейтинг: 0 / 0
13.11.2012, 15:31
    #38036434
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
проблема в том что не работает ни так:

Код: php
1.
2.
$pattern = "/<img[^<>]*src=['|\"](.*)['|\"][^<>]*^(alt=)[^<>]*[>|\/>]{1}/isU";
$data = preg_replace($pattern,"<img src=\"$1\" alt=\"лучшее фото\" />",$data); 

ни так:
Код: php
1.
2.
$pattern = "/<img[^<>]*src=['|\"](.*)['|\"][^<>]*^[(alt=)][^<>]*[>|\/>]{1}/isU";
$data = preg_replace($pattern,"<img src=\"$1\" alt=\"лучшее фото\" />",$data); 



ну это с учетом того что атрибут alt= будет всегда после атрибута src=

а в идеале хотелось бы что бы и тот и другой были выбраны независимо от их положения
...
Рейтинг: 0 / 0
13.11.2012, 20:42
    #38037003
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
На скорую руку как-то так:
Код: php
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
<?php
$html = <<<XXX
	<html>
	<img src="1.jpg" width="250" height="70" />
	<p><img class="class2" src="2.jpg" alt="Alt 2" title="Title 2" /></p>
	<div><img class="class3" src="3.jpg" alt="Alt 3" title="Title 3" /></div>
	<br>
	<img src="4.jpg" height=32 width=32 alt="Alt 4" />
	<img class="class5" src="5.jpg" />
	</html>
XXX;

$img_no_tags = array(); // сюда будем собирать img без тегов

// 1. Cобрали все изображения в массив
preg_match_all('/<img[^>]+>/i',$html, $result);

// 2. Прошлись по массиву
foreach($result[0] as $img)
{
	if (!preg_match('/(alt|title)\s*=\s*("[^"]*")/i',$img))
		$img_no_tags[] = $img;
}

print_r($img_no_tags);
?>
...
Рейтинг: 0 / 0
14.11.2012, 17:21
    #38038448
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
нет нет нет phpz
так и я могу кучу обработок сделать по всем <img тегам,
я хотел узнать как можно выбрать все элементы img без атрибута alt или title одним регулярным выражением
...
Рейтинг: 0 / 0
14.11.2012, 17:22
    #38038451
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
возможно ли это в принципе
...
Рейтинг: 0 / 0
14.11.2012, 17:31
    #38038477
phpz
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
zloyGamerвозможно ли это в принципе
Можно, но будет выполнятся оооочень медленно, что-то типа
Код: php
1.
(<img(?:[^>](?!(alt|title)=))*+>)
...
Рейтинг: 0 / 0
14.11.2012, 17:45
    #38038510
ScareCrow
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
авторя хотел узнать как можно выбрать все элементы img без атрибута alt или title одним регулярным выражением
тебе надо почистить альты или найти все картинки БЕЗ альтов?
...
Рейтинг: 0 / 0
15.11.2012, 16:37
    #38040070
zloyGamer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
ScareCrowтебе надо почистить альты или найти все картинки БЕЗ альтов?
да, надо найти все картинки без альтов


Код: php
1.
(<img(?:[^>](?!(alt|title)=))*+>)

не могу понять что здесь означает метасимвол "?" ?
...
Рейтинг: 0 / 0
15.11.2012, 21:11
    #38040504
vkle
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
[php] preg_match_all выборка всех <img без тегов title и alt
...
Рейтинг: 0 / 0
Форумы / PHP, Perl, Python [игнор отключен] [закрыт для гостей] / [php] preg_match_all выборка всех <img без тегов title и alt / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]