对所有外部链接空白

可能重复:
抓取A元素的href属性
在“href”标签中解析包含特定字词的所有链接

我正在使用以下功能将_blank添加到我网站上的所有链接。

function targetBlank($text) {
  $return = str_replace('<a', '<a target="_blank"', $text);
  return $return;
}

我正在寻找一种解决方案,将此功能仅应用于外部链接(而不是我的域)而不是所有链接。


以下是依赖于$_SERVER['HTTP_HOST']的尝试解决方案:

function targetBlank($text) {
  if( strpos( $text, $_SERVER['HTTP_HOST'] ) === false )
      return str_replace('<a', '<a target="_blank"', $text);
  return $text;
}

未经测试,但应该有效。 @meager也是正确的,因为如果该标签已经定义了一个目标,这将产生格式错误的锚标签,但是,因为它只会对传入的html字符串进行操作,所以<abbr>等应该是安全的,只要你只能传入带有锚标签的字符串。

链接地址: http://www.djcxy.com/p/76723.html

上一篇: blank to all external links

下一篇: php: convert all relative urls in absolute urls