Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
添加rel=";的PHP正则表达式;nofollow";连接到外部链接_Php_Regex_Seo_Nofollow - Fatal编程技术网

添加rel=";的PHP正则表达式;nofollow";连接到外部链接

添加rel=";的PHP正则表达式;nofollow";连接到外部链接,php,regex,seo,nofollow,Php,Regex,Seo,Nofollow,我需要将rel=“nofollow”添加到所有外部链接(不指向我的网站或其子域) 我分两步完成此操作,首先使用以下正则表达式将rel=“nofollow”添加到所有链接(甚至内部链接): <a href="http([s]?)://(.*?)" <a href="http([s]?)://(www\.|forum\.|blog\.)mysite.com(.*?)" rel="nofollow" 我怎样才能一步到位?可能吗?DOM方式: $doc = new DOMDocument

我需要将
rel=“nofollow”
添加到所有外部链接(不指向我的网站或其子域)

我分两步完成此操作,首先使用以下正则表达式将
rel=“nofollow”
添加到所有链接(甚至内部链接):

<a href="http([s]?)://(.*?)"
<a href="http([s]?)://(www\.|forum\.|blog\.)mysite.com(.*?)" rel="nofollow"
我怎样才能一步到位?可能吗?

DOM方式:

$doc = new DOMDocument();
@$doc -> loadHTMLFile($url); // url of the html file
$links = $doc->getElementsByTagName('a');

foreach($links as $link) {
    $href = $link->getAttribute('href');
    if (preg_match('~^https?://(?>[^/m]++|m++(?!ysite.com\b))*~', $href))
        $link->setAttribute('rel', 'nofollow');
}

$doc->saveHTMLFile($url);

使用html解析器如何?更好的是,使用搜索功能如何?或的可能副本