这个问题已经有了答案:
RegEx expression to find a href links and add NoFollow to them
3答
我需要添加rel="nofollow"
到所有外部链接(不指向我的站点或其子域)。
我分两步完成了这项工作,首先我使用以下正则表达式将rel="nofollow"
添加到所有链接(甚至内部链接):
<a href="http([s]?)://(.*?)"
然后在第二步中,我使用以下正则表达式消除内部链接(我的站点及其子域)的
rel="nofollow"
:<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);
关于php - PHP正则表达式将rel =“nofollow”添加到外部链接,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17630008/