php怎么用正则判断文章中是否有超链接?

$text="测试内容<a href=\"http://mp3.baidu.com\">MP3</a> <a href=\"http://image.baidu.com\">图片</a>正文 <a href=\"http://video.baidu.com\">视频</a>";

比如以上内容,怎么用正则达到以下效果:

if(){
echo "包含超链接";
}else{
echo "恭喜,没有超链接";
}

第1个回答  2011-09-17
$pos = strpos($text,'</a>');
if ($pos === false) {
echo "恭喜,没有超链接";
}else{
echo "包含超链接";
}
比正则表达式快。正则表达式一般用来解析内容才用。
第2个回答  2011-09-17
preg_match_all("#<a([^>]*)>(.*)<\/a>#iU", $text, $arr);
if( is_array( $arr[0] ) ){
echo "包含超链接";
}else{
echo "恭喜,没有超链接";
}追问

$text="测试内容MP3 图片正文 视频";



$text="测试内容";

都显示“包含超链接”,说明代码无效,请帮忙提供正确的,测试有效的

追答

哦,不好意思,改一下判断条件,将
if( is_array( $arr[0] ) ){
改成
if( $arr[0] ){
因为preg_match_all返回的就是数组,所以is_array的判断就不全面了。
如果有超链接,返回的数组不为空,所以直接判断$arr[0]合理。

追问

还是错的,$arr[0] 得到的是“Array”,
不是数值啊?555555555555

追答

不是吧,我这测试正确的啊。贴下我的代码:
$text="测试内容MP3 图片正文 视频";

$text1="测试内容";

preg_match_all("#]*)>(.*)#iU", $text, $arr);
//print_r($arr);
var_dump($arr);
if( $arr[0] ){
echo "包含超链接";
}else{
echo "恭喜,没有超链接";
}

本回答被提问者采纳

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网