3

重複の可能性:
A 要素の href 属性を
取得する 「href」タグに特定の単語を含むすべてのリンクを解析する

次の関数を使用して、Web サイトのすべてのリンクに _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 に答える