Просмотр полной версии : Помогите с регулярный выражением на PHP
Здравствуйте, уважаемые программисты.
Помогите составить регулярку на PHP для такого:
имеем
<b>Линки</b></a><hr><a href="\http://site.ru/id.php?key=523169210347762514824620110374859\" class="\"takru\"" target="\"_top\"" onclick='\"javascript:' rnd(this);\="">
в итоге должны получить
http://site.ru/id.php?key=523169210347762514824620110374859
В общем извлечь ссылку из текста
Pashkela
01.09.2009, 03:26
<pre>
<?php
$a = <<<HTML
<b>Линки</b></a><hr><a href="\http://site.ru/id.php?key=523169210347762514824620110374859\" class="\"takru\"" target="\"_top\"" 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, 21:53
оставь тогда внутри регулярки только
<a href="\\\(.*)\\\
и всё
< ahref ведь не поменяется? А вообще, прежде чем спрашивать, надо давать сразу все возможные варианты, а не только одну строчку, по идее
оставь тогда внутри регулярки только
<a href="\\\(.*)\\\
и всё
< ahref ведь не поменяется? А вообще, прежде чем спрашивать, надо давать сразу все возможные варианты, а не только одну строчку, по идее
сосайтнек, а что если будет <a target="_blank" href="http://google.com">.. ? даже если когда будет hREf , тоже не будет результата.
зачем такую "строгую" регулярку делать? будь попроще и делай более универсальные..
UnOuter:
/<a.+?href="(.+?)"/is
сосайтнек, а что если будет <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 как в начале так и в конце ссылки
Вставил сюда
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);
UnOuter
ошибка из-за ковычек!
$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"
}
vBulletin® v3.8.14, Copyright ©2000-2026, vBulletin Solutions, Inc. Перевод: zCarot