3

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

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

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

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

4

1 回答 1

5

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

于 2012-06-22T18:29:29.420 回答