首页 > 后端开发 > php教程 > 请问个php正则表达式的用法,求高手帮忙

请问个php正则表达式的用法,求高手帮忙

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
发布: 2016-06-13 13:23:01
原创
1138 人浏览过

请教个php正则表达式的用法,求高手帮忙
想做个友情链接的检测方法,检测对方网站是不是有我的网站的友情链接,也就是判断是否有我网站的地址;

例如:我的网站的地址是www.csdn.net,

但是有些网站有时候会在链接里面加个rel="nofollow",这样友情链接就没有意义了;

正则没好好学,问下怎么才能检测出是否加了这个呢?
有好几种情况,例如:

HTML code

1

2

3

4

5

6

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

--><a rel="nofollow" href="http://www.csdn.net">csdn</a>

登录后复制


HTML code

1

2

3

4

5

6

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

--><a target="_blank" rel="nofollow" href="http://www.csdn.net">csdn</a>

登录后复制
登录后复制


HTML code

1

2

3

4

5

6

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

--><a target="_blank" rel="nofollow" href="http://www.csdn.net">csdn</a>

登录后复制
登录后复制


HTML code

1

2

3

4

5

6

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

--><a rel="nofollow" href="http://www.csdn.net" target="_blank">csdn</a>

登录后复制


HTML code

1

2

3

4

5

6

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

--><a href="http://www.csdn.net" target="_blank" rel="nofollow">csdn</a>

登录后复制


以下是我在网上找的别人检测地址的代码:

PHP code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

<!--

 

Code highlighting produced by Actipro CodeHighlighter (freeware)

http://www.CodeHighlighter.com/

 

-->

$out=strtolower(@file_get_contents(http://www.xxx.com));

      if($out){

          $out=str_replace("\r\n","",$out);

          $out=str_replace("\r","",$out);

          $out=str_replace("\n","",$out);

          $havelink=preg_match_all('/<a>(.*?)/i', $out, $m);

            

          if($havelink||strstr($robots,'nofollow')){

                         echo "友情链接存在";

 

}

                   }

 

 

</a>

登录后复制


求高手帮忙

------解决方案--------------------
迂回一下,正则我也很弱,找出和自己相关的链接,然后判断是否存在关键代码

PHP code

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

$array = csdn

<a target="_blank" rel="nofollow" href="http://www.csdn.net">csdn</a>

<a target="_blank" rel="nofollow" href="http://www.csdn.net">csdn</a>

<a rel="nofollow" href="http://www.csdn.net" target="_blank">csdn</a>

HTML;

preg_match_all('/(<a.>)/is', $array, $match);

if (isset($match[1])) {

    foreach ($match[1] as $html) {

        if (stripos($html, 'rel="nofollow"') !== FALSE)

            echo 'bad!';

        break;

    }

 

} <div class="clear">

                  

               

               

         

            </div></a.>

登录后复制
相关标签:
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板