可能重复:
Grabbing the href attribute of an A element
Parse All Links That Contain A Specific Word In "href" Tag
我正在使用以下功能将_blank添加到我网站上的所有链接。
function targetBlank($text) {
$return = str_replace('<a', '<a target="_blank"', $text);
return $return;
}
我正在寻找一种解决方案,只在外部链接(不在我的域上)而不是所有链接上应用此功能。
答案 0 :(得分: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>
等等应该是安全的只要您传递带有锚标记的字符串。