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
Форумы портала PHP.SU :: Версия для печати :: Поиск тегов <img/> в тексте функцией preg_match_all
Форумы портала PHP.SU » » Вопросы новичков » Поиск тегов <img/> в тексте функцией preg_match_all

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

1. webmos - 05 Ноября, 2011 - 00:51:38 - перейти к сообщению
Надо было найти все теги <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?
2. LIME - 05 Ноября, 2011 - 05:28:48 - перейти к сообщению
webmos это исходник?
наверное нет
гляньте в исходник там вероятно будет весь тег картинки
3. webmos - 05 Ноября, 2011 - 10:55:33 - перейти к сообщению
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"/>
4. LIME - 05 Ноября, 2011 - 11:00:58 - перейти к сообщению
webmos а теперь посмотрите в браузере исходный текст страницы
если не знаете как то попробуйте поискать в меню
если не найдете то пишите какой браузер
5. webmos - 05 Ноября, 2011 - 18:57:02 - перейти к сообщению
LIME пишет:
webmos а теперь посмотрите в браузере исходный текст страницы
если не знаете как то попробуйте поискать в меню
если не найдете то пишите какой браузер


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

 

Powered by ExBB FM 1.0 RC1