添加到_blank所有外部链接[复制](Add _blank to all external lin

2019-07-30 02:35发布

可能重复:
敛的A元素的href属性
解析所有链接包含特定单词的“href”标签

我使用下面的函数来_blank添加到我的网站上所有的链接。

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

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

Answer 1:

下面是一个尝试的解决方案,它依赖于$_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>等应该是安全的,只要你只有通过与他们的锚标记字符串。



文章来源: Add _blank to all external links [duplicate]