日期:2014-05-17  浏览次数:20416 次

正则获取源码中的url
<li><a href="/plus/ajax.php?open=2&id=826186" target="_blank">打开</a></li>
源码中有这么一段,我想获取其中的url /plus/ajax.php?open=2&id=826186 php正则怎么获取,新手,望指点一下


------解决方案--------------------
PHP code

$s ='<li><a href="/plus/ajax.php?open=2&id=826186" target="_blank">打开</a></li>';
preg_match_all('/href="(.*?)"/i',$s,$arr);
print_r($arr);

------解决方案--------------------
PHP code

if(preg_match_all('/<li><a\s*href="(.*?)"\s*target="_blank">.*?[^<]<\/a><\/li>/is',$s,$match)){
  //print_r($match);
  $tmp = $match[1][0]; //$tmp 就是你要的部分
  //echo $tmp ;
}

------解决方案--------------------
csdn高手太多了,鬱悶,我還沒來得及回答就已經有人搶先了.
------解决方案--------------------
探讨

PHP code

if(preg_match_all('/<li><a\s*href="(.*?)"\s*target="_blank">.*?[^<]<\/a><\/li>/is',$s,$match)){
//print_r($match);
$tmp = $match[1][0]; //$tmp 就是你要的部分
//echo $tmp ;
}

------解决方案--------------------
PHP code

//哥也来个兼容性强大点的吧。。

preg_match_all('/<a[^>]*href\s*=\s*[\'"]([^\'">]*)[\'"]/i',$string,$matches);

var_dump($matches[1]);

------解决方案--------------------
见到这种问题我真的不想回答,建议你自己好好看看正则表达式……
------解决方案--------------------
探讨

PHP code

//哥也来个兼容性强大点的吧。。

preg_match_all('/<a[^>]*href\s*=\s*[\'"]([^\'">]*)[\'"]/i',$string,$matches);

var_dump($matches[1]);