Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - PHP - регулярные выражения: HELP

Ответить
Настройки темы
Разное - PHP - регулярные выражения: HELP

Новый участник


Сообщения: 5
Благодарности: 0

Профиль | Отправить PM | Цитировать


никак не могу разобраться с регулярными выражениями, помогите
нужно выцепить имя картинки в строке(ах):
<img src="somefile.gif" alt="">
<img src=somefile.gif alt="">
<img src = somefile.gif>
с помощью функции preg_match_all

Отправлено: 21:45, 07-08-2004

 

редкий гость


Сообщения: 1696
Благодарности: 44

Профиль | Сайт | Отправить PM | Цитировать


Код: Выделить весь код
<?php

$test = <<<TEST
some text <imG src=image.gif> another text
text continues <iMg src= "image.png"  Alt=text>
txt <  img    src ='image.jpg'  alt ="text  sfds" sOme="other tags">
text again <img src=iMAGE.tiff alt=""> that's all, folks!
TEST;

// регэксп длинный, я его немножко разбил
$src_part = 'src\s*=\s*("[^"]*"|\'[^\']*\'|[^\s]+)';
$alt_part = '(\s+alt\s*=\s*("[^"]*"|\'[^\']*\'|[^\s]+))?';
preg_match_all('/<\s*img\s+'.$src_part.$alt_part.'(.*?)>/i', $test, $result);

echo '<pre>';
print_r($result);
echo '</pre>';

?>
Результат:
Код: Выделить весь код
Array
(
    [0] => Array
        (
            [0] => <imG src=image.gif>
            [1] => <iMg src= "image.png"  Alt=text>
            [2] => <  img    src ='image.jpg'  alt ="text  sfds" sOme="other tags">
            [3] => <img src=iMAGE.tiff alt="">
        )

    [1] => Array
        (
            [0] => image.gif
            [1] => "image.png"
            [2] => 'image.jpg'
            [3] => iMAGE.tiff
        )

    [2] => Array
        (
            [0] => 
            [1] =>   Alt=text
            [2] =>   alt ="text  sfds"
            [3] =>  alt=""
        )

    [3] => Array
        (
            [0] => 
            [1] => text
            [2] => "text  sfds"
            [3] => ""
        )

    [4] => Array
        (
            [0] => 
            [1] => 
            [2] =>  sOme="other tags"
            [3] => 
        )

)
Где здесь то, что тебе нужно и как убрать лишние кавычки, я думаю, понятно.

Важное замечание: после img обязательно должно быть src, а не какой-либо другой тэг. И alt, если он есть, дожен быть обязательно после src, иначе он не выцепится. Я когда-то давно делал на php парсер html (свой двигатель шаблонов делал), у него этих проблем не было бы, но он давно утерян

-------
http://ivank.ru


Отправлено: 17:41, 08-08-2004 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Тема перемещена сюда

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 01:05, 09-08-2004 | #3


Аватара для Prisoner

Engrossed by the Void


Сообщения: 2229
Благодарности: 60

Профиль | Отправить PM | Цитировать


Тема перемещена сюда

-------
Не могу дать более дельный совет - не хватает системных ресурсов...


Отправлено: 01:05, 09-08-2004 | #4


Пользователь


Сообщения: 147
Благодарности: 4

Профиль | Отправить PM | Цитировать


Помогите пожалуйста с регулярным выражением-никак не получается написать нужное или хотя бы реально работающее.
Задача: выцеплять адреса вида любойвозможныйадрес.ru и не кушать при этом никакие адреса почтовых ящиков
Уж как только не пытался - и через [^@], и через ретроспективную негативную проверку, и жёстким заданием - не получается или получается то, работы чего я не понимаю.
Исходник, понятно [a-zA-Z0-9]+\.[rR][uU]

-------
...доказывающий не знает. Знающий не доказывает...


Отправлено: 22:06, 06-09-2008 | #5


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


обалдеваю я с людей: Delion Soulblade столько букв написал, а ничего конкретного не сказал. Может в этом и проблема, что не смог сформулировать чётких условий? Домены только второго уровня? Не русскоязычные? Из произвольного текста?

Отправлено: 14:12, 07-09-2008 | #6


Пользователь


Сообщения: 147
Благодарности: 4

Профиль | Отправить PM | Цитировать


Ей-богу, не знаю уж в чём проблема и посему прошу помощи.
В моём случае без разницы какого уровня. Не русскоязычные. Из любой части любого текста, фразы или слова.
И, главное, чтобы при этом не затрагивались адреса почтовых ящиков.

-------
...доказывающий не знает. Знающий не доказывает...


Отправлено: 20:48, 07-09-2008 | #7


Аватара для Coutty

Кот Ти


Сообщения: 7318
Благодарности: 1204

Профиль | Отправить PM | Цитировать


Delion Soulblade, может быть пусть затрагиваются? Потом пройтись по массиву найденных адресов поиском, да исключить все вхождения с собакой.

Отправлено: 21:06, 07-09-2008 | #8


Пользователь


Сообщения: 147
Благодарности: 4

Профиль | Отправить PM | Цитировать


Да вот нет...не будет никакого массива, фильтрацию нужно осуществлять "вживую".

-------
...доказывающий не знает. Знающий не доказывает...


Отправлено: 22:16, 07-09-2008 | #9


Ветеран


Сообщения: 3806
Благодарности: 824

Профиль | Отправить PM | Цитировать


Delion Soulblade, ещё раз повторяю: напиши чётко что должно извлекаться и откуда. В частности, как быть с длинными адресами - содержащими путь к файлу; просто имеющих дробь на конце и т.п. Их надо игнорировать или извлекать из них адрес верхнего домена?

Отправлено: 14:19, 08-09-2008 | #10



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - PHP - регулярные выражения: HELP

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
регулярные выражения Ginger Вебмастеру 60 21-03-2012 01:11
[решено] PHP|регулярные выражения, preg_match morgan1991 Вебмастеру 11 10-03-2010 01:03
PHP - регулярные выражения: HELP GoldenOrb Вебмастеру 13 18-07-2008 16:05
PHP. Регулярные выражения и русские символы. Prisoner Вебмастеру 3 16-01-2004 14:31
Регулярные выражения est Хочу все знать 6 02-10-2002 14:17




 
Переход