Форум программистов, компьютерный форум, киберфорум
PHP для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
112 / 55 / 13
Регистрация: 26.12.2010
Сообщений: 205
1

Загвоздка с выражениями preg

04.02.2011, 21:53. Показов 526. Ответов 2
Метки нет (Все метки)

Доброго времени суток, уважаемые программисты!
Столкнулся с проблемой при обработке выражения preg.
Имеется код
HTML5
1
2
3
<a onclick="test1Script()" href="http://test1.com/">test 1</a>
some content
<a onclick="test2Script()" href='http://test2.com/' target='_blank'>test 2</a>
Пишу следующее выражение
PHP
1
2
3
<?php
    $str    =   "~\<a(.*?)href\=\'(.*?)\:\/\/(.*?)\'(.*?)\>(.*?)\<\/a\>~s";
?>
Функция preg_match
Возвращает массив
PHP
1
2
3
4
5
6
7
8
9
Array
(
    [0] => onclick="test1Script()" href="http://test1.com/">test 1</a>
some content
    [1] => http
    [2] => test2.com/
    [3] =>  target='_blank'
    [4] => test2
)
Вместо
PHP
1
2
3
4
5
6
7
8
Array
(
    [0] =>  onclick="test2Script()"
    [1] => http
    [2] => test2.com/
    [3] =>  target='_blank'
    [4] => test2
)
Вопрос как написать выражение, чтобы выражение обрабатывало теги с разными кавычками, например
HTML5
1
2
<a ... href="..." ...>...</a> 
<a ... href='...' ...>...</a>
За любой ответ заранее благодарен!
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
04.02.2011, 21:53
Ответы с готовыми решениями:

preg массив
у меня есть массив и проверяемый текст $arr=array( &quot;кино&quot;, &quot;мото&quot;, &quot;слайд&quot; ); ...

Условия в preg
не работает условие в регулярке $text = preg_replace('/\+)\](.*?)\/i', &quot;&lt;a...

функция preg match
Если знаешь что должно получиться на выходе из поля формы, ограничивать каждое поле регуляркой, что...

Ereg и preg match
как правильно заменить на preg match это : if(!ereg(&quot;^{1,255}$&quot;, $ad)) и нужно ли вообще...

2
55 / 55 / 8
Регистрация: 12.12.2010
Сообщений: 204
04.02.2011, 23:38 2
Цитата Сообщение от unsektor Посмотреть сообщение
Вопрос как написать выражение, чтобы выражение обрабатывало теги с разными кавычками
замените в регулярке \' на [\'\"]

чтобы подавить жадность (onclick="test1Script()" href="http://test1.com/">test 1</a>), используйте модификатор U
1
112 / 55 / 13
Регистрация: 26.12.2010
Сообщений: 205
05.02.2011, 15:33  [ТС] 3
Пишу выражение
Код
~\<a href\=[\'\"](.*?)\:\/\/(.*?)[\'\"](.*?)\>(.*?)\<\/a\>~U
Обработчик
PHP
1
2
3
4
5
6
function url_rewriter($arg)
        {
        //  print_r($arg);
            $url    =   $arg[0] . "://" . $arg[1];
            return "<a href=\"" . $url . "\" onclick=\"showWarning('" . $url . "');return false;\"" . $arg[2] . ">" . $arg[3] . "</a>"; 
        }
Получаю
<a href="http://google.com/' target='_blank'>Самая известная поисковая система мира!<br /></a>
Вместо
<a href='http://google.com/' target='_blank'>Самая известная поисковая система мира!<br /></a>
Что-то не выходит ...
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.02.2011, 15:33

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Preg плюс регулярка
Добрый вечер. Не работает код - выдает в переменной $maches при выполнении print_r на экран...

Регулярные выражения (preg.match_all)
Здравствуйте, господа! :) Хочу Вас попросить помочь мне в составлении выражения. Не получается и...

Preg match и массив server
Когда я смотрю сайт через комп по виндовс, скрипи не перекидывает на http://.../404/ код &lt;?php...

Регулярные выражения через preg.match
Ребят! нужна помощб в функции... немогу никак понять.. уже часов 7 сижу и что только не делал.....

Нужна помощь, я в preg match шарю плохо.
нужен код который например вытащит 51dg3s51ger86g1e35r из кода : ...

И снова preg match all, не могу справиться с парсингом
Приветствую всех! Прошу помощи в разрешении следующей проблемки: Пытаюсь спарсить ссылки и...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.