Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Поиск тегов <img/> в тексте функцией preg_match_all

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (1): [1]   

> Описание: Заметил интересную фишку насчет выводимого в массив содержимого!
webmos
Отправлено: 05 Ноября, 2011 - 00:51:38
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Окт. 2011  
Откуда: Москва


Помог: 0 раз(а)




Надо было найти все теги <img/> на странице и сотворил вот такое выражение:

preg_match_all('/<img[^>]*\/([0-9]{1,2})-([0-9]{1,2})[^>]*\

/>/iu',$content,$matches,PREG_SET_ORDER);

Выражение ищет тег <img/> в котором имя картинки имеет вид (число-число.расширение)

Функция выводит многомерный массив, в котором найдены искомые имена картинок. (они заданы, как подмаски).
Но при этом сначала выводится все выражение, которому соответствует мой шаблон.
Интересно то, что в этом случае выводится содержание атрибута alt! Если же он не задан, то выводится пустая строка:

Array
(
[0] => Array
(
[0] => Рисунок 15.6. Характиристики системы управления .
[1] => 15
[2] => 6
)

[1] => Array
(
[0] => Рис.15.17. Варианты систем управления.
[1] => 15
[2] => 17
)

)

То есть выводится не вся строка внутри искомого тега, а только то, что написано в его alt.
Кто-нибудь встречался с этим? Это фирменная фишка разработчиков функции preg_match?

(Отредактировано автором: 05 Ноября, 2011 - 00:53:25)

 
 Top
LIME
Отправлено: 05 Ноября, 2011 - 05:28:48
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




webmos это исходник?
наверное нет
гляньте в исходник там вероятно будет весь тег картинки
 
 Top
webmos
Отправлено: 05 Ноября, 2011 - 10:55:33
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Окт. 2011  
Откуда: Москва


Помог: 0 раз(а)




LIME пишет:
webmos это исходник?
наверное нет
гляньте в исходник там вероятно будет весь тег картинки


Не понял - что вы имеете ввиду под исходником. Я привел точно то, что мне выдала на экран функция preg_match_all после поиска в тексте картинок.

Выводил таким макаром:

echo "<pre>";
print_r($matches);
echo "</pre>";

Первое вхождение в подмассиве (там, как я понял должно идти выдаваться полное совпадение с шаблоном) содержит содержимое атрибута alt.


вот строка в тексте:

<img alt="Рисунок 15.6. Характиристики системы управления." title="Рис.15.6" src="HydPic/15-6.gif"/>

(Отредактировано автором: 05 Ноября, 2011 - 10:56:42)

 
 Top
LIME
Отправлено: 05 Ноября, 2011 - 11:00:58
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




webmos а теперь посмотрите в браузере исходный текст страницы
если не знаете как то попробуйте поискать в меню
если не найдете то пишите какой браузер
 
 Top
webmos
Отправлено: 05 Ноября, 2011 - 18:57:02
Post Id



Гость


Покинул форум
Сообщений всего: 65
Дата рег-ции: Окт. 2011  
Откуда: Москва


Помог: 0 раз(а)




LIME пишет:
webmos а теперь посмотрите в браузере исходный текст страницы
если не знаете как то попробуйте поискать в меню
если не найдете то пишите какой браузер


Понял - про что вы. Да, в коде страницы браузера приведен весь тег целиком (все вхождение). Это, значит, браузер тег распознал и вывел только alt.
А я то подумал, что Америку открыл. Радость Спасибо

(Отредактировано автором: 05 Ноября, 2011 - 18:57:30)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB