Home > Backend Development > PHP Tutorial > 请问个php正则表达式的用法,求高手帮忙

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

WBOY
Release: 2016-06-13 13:23:01
Original
1098 people have browsed it

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

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

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

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

HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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


HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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


HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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


HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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


HTML code
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

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


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

PHP code
<!--

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>
Copy after login


求高手帮忙

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

PHP code

$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.>
Copy after login
Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template