ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > PHP, PERL, MySQL, JavaScript
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Помогите с регулярный выражением на PHP
  #1  
Старый 01.09.2009, 03:06
Аватар для UnOuter
UnOuter
Новичок
Регистрация: 24.07.2009
Сообщений: 5
Провел на форуме:
15612

Репутация: 0
По умолчанию Помогите с регулярный выражением на PHP

Здравствуйте, уважаемые программисты.

Помогите составить регулярку на PHP для такого:

имеем
Код:
<b>Линки</b></a><hr><a href="\http://site.ru/id.php?key=523169210347762514824620110374859\" class="\&quot;takru\&quot;" target="\&quot;_top\&quot;" onclick='\"javascript:' rnd(this);\="">
в итоге должны получить

Код:
http://site.ru/id.php?key=523169210347762514824620110374859

В общем извлечь ссылку из текста
 
Ответить с цитированием

  #2  
Старый 01.09.2009, 03:26
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

PHP код:
<pre>
<?php
$a 
= <<<HTML
<b>Линки</b></a><hr><a href="\http://site.ru/id.php?key=523169210347762514824620110374859\" class="\&quot;takru\&quot;" target="\&quot;_top\&quot;" onclick='\"javascript:' rnd(this);\="">
"
HTML;
preg_match_all('|<b>Линки</b></a><hr><a href="\\\(.*)\\\" class="|',$a,$res);
print_r ($res[1]);
?>
</pre>

Последний раз редактировалось Pashkela; 01.09.2009 в 04:15..
 
Ответить с цитированием

  #3  
Старый 01.09.2009, 21:24
Аватар для UnOuter
UnOuter
Новичок
Регистрация: 24.07.2009
Сообщений: 5
Провел на форуме:
15612

Репутация: 0
По умолчанию

Спасибо, но мне кажется он немного не универсальный. То есть стоит поменяться какому-то тегу то ссылку я уже не извлеку. Хотелось бы более универсальные решения.

Спасибо.
 
Ответить с цитированием

  #4  
Старый 01.09.2009, 21:53
Аватар для Pashkela
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию

оставь тогда внутри регулярки только

<a href="\\\(.*)\\\

и всё

< ahref ведь не поменяется? А вообще, прежде чем спрашивать, надо давать сразу все возможные варианты, а не только одну строчку, по идее
 
Ответить с цитированием

  #5  
Старый 01.09.2009, 23:01
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

Цитата:
Сообщение от Pashkela  
оставь тогда внутри регулярки только

<a href="\\\(.*)\\\

и всё

< ahref ведь не поменяется? А вообще, прежде чем спрашивать, надо давать сразу все возможные варианты, а не только одну строчку, по идее
сосайтнек, а что если будет <a target="_blank" href="http://google.com">.. ? даже если когда будет hREf , тоже не будет результата.
зачем такую "строгую" регулярку делать? будь попроще и делай более универсальные..

UnOuter:
/<a.+?href="(.+?)"/is
 
Ответить с цитированием

  #6  
Старый 02.09.2009, 21:51
Аватар для UnOuter
UnOuter
Новичок
Регистрация: 24.07.2009
Сообщений: 5
Провел на форуме:
15612

Репутация: 0
По умолчанию

Цитата:
Сообщение от eLWAux  
сосайтнек, а что если будет <a target="_blank" href="http://google.com">.. ? даже если когда будет hREf , тоже не будет результата.
зачем такую "строгую" регулярку делать? будь попроще и делай более универсальные..

UnOuter:
/<a.+?href="(.+?)"/is

Вставил сюда

preg_match_all ("/<a.+?href="(.+?)"/is", $str , $massiv);

и получаю ошибку.
Parse error: syntax error, unexpected '(' in ....


да и заметте, что в самом <a href=" есть %5C%22 как в начале так и в конце ссылки

Последний раз редактировалось UnOuter; 02.09.2009 в 21:55..
 
Ответить с цитированием

  #7  
Старый 02.09.2009, 21:56
Аватар для L I G A
L I G A
Постоянный
Регистрация: 27.07.2008
Сообщений: 614
Провел на форуме:
4532332

Репутация: 1196


Отправить сообщение для L I G A с помощью ICQ
По умолчанию

Цитата:
Сообщение от UnOuter  
Вставил сюда

preg_match_all ("/<a.+?href="(.+?)"/is", $str , $massiv);

и получаю ошибку.
Parse error: syntax error, unexpected '(' in ....


да и заметте, что в самом <a href=" есть %5C%22 как в начале так и в конце ссылки
preg_match_all ('/<a.+?href="(.+?)"/is', $str , $massiv);
 
Ответить с цитированием

  #8  
Старый 02.09.2009, 22:08
Аватар для Tigger
Tigger
Познавший АНТИЧАТ
Регистрация: 27.08.2007
Сообщений: 1,107
Провел на форуме:
5386281

Репутация: 1177


Отправить сообщение для Tigger с помощью ICQ
По умолчанию

UnOuter
ошибка из-за ковычек!
 
Ответить с цитированием

  #9  
Старый 02.09.2009, 23:52
Аватар для eLWAux
eLWAux
Members of Antichat - Level 5
Регистрация: 15.06.2008
Сообщений: 941
Провел на форуме:
5111568

Репутация: 2399


Отправить сообщение для eLWAux с помощью ICQ
По умолчанию

PHP код:
     $a '
     dasasdlad jlalsdasd asdloaim dasd 
     asd adsda d <a href="google.com">asdqwd aoldm aikjqld qw
     as<a          href=\'google2.com\'    >d a sd aksudmqid jlasdq d wqd aw
      al;sd ;<A hReF="gOgOlE3.cOm">askd aksd mpqdio aksldj qd
     '
;
     print 
htmlspecialchars($a).'<br><br>';
     
preg_match_all ("/<a.+?href=[\"'](.+?)[\"']/is"$a $m);
     print 
'<pre>';
     
var_dump($m[1]);
     print 
'</pre>'
Код:
dasasdlad jlalsdasd asdloaim dasd asd adsda d <a href="google.com">asdqwd aoldm aikjqld qw as<a href='google2.com' >d a sd aksudmqid jlasdq d wqd aw al;sd ;<A hReF="gOgOlE3.cOm">askd aksd mpqdio aksldj qd 

array(3) {
  [0]=>
  string(10) "google.com"
  [1]=>
  string(11) "google2.com"
  [2]=>
  string(11) "gOgOlE3.cOm"
}
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Books PHP FRAGNATIC PHP, PERL, MySQL, JavaScript 186 21.02.2010 02:41
Books PSalm69 Избранное 248 27.10.2009 04:52
На PHP, как на "Новые ворота"... Mertvii-Listopad Чужие Статьи 7 18.09.2006 12:42
Безопасность в Php, Часть Iii k00p3r Чужие Статьи 0 11.07.2005 19:02
Защищаем Php. Шаг за шагом. k00p3r Чужие Статьи 0 13.06.2005 11:31



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ