• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:preg_replace関数のtarget属性)

preg_replace関数のtarget属性を_blankに変更したい

このQ&Aのポイント
  • preg_replace関数の引数の一部にある<a>タグ内のtarget属性を変更したいです。
  • 現在、使用しているコードでは新しいウィンドウが開かず、元の画面のままリンク先に遷移します。
  • 新しいウィンドウにリンク先のURLを表示させるためにはどのような方法がありますか?

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

$tweet['text']=preg_replace("/(http:\/\/t.co\/[a-zA-Z0-9]{10})/", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet['text']); target の前の空白がマルチバイト文字(いわゆる全角)になっています。そのためtarget属性が(ブラウザに)正しく認識されていません。 $tweet['text']=preg_replace("/(http:\/\/t.co\/[a-zA-Z0-9]{10})/", "<a href=\"\\0\" target=\"_blank\">\\0</a>", $tweet['text']);

dradra33
質問者

お礼

agunuzさま コメントありがとうございます。 ご指摘の通りtargetの前の空白を全角から半角にすると、 新しくウィンドウが開くようになりました。 アドバイス助かりました。

その他の回答 (2)

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.3

#2は、いずれにしろいい方法ではありません 失礼しました、あしからず

dradra33
質問者

お礼

yambejpさま 今後ともどうぞよろしくお願い申し上げます。

  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

ポップアップブロックじゃない? いろいろ問題があるとは思いますがjavascriptで開いてみては? <?PHP $str="てすとてすとhttp://t.co/xxxxxxxxxxてすとてすと"; $pattern="/(http:\/\/t.co\/[a-zA-Z0-9]{10})/"; $replacement="<a href=\"#\" onclick=\"window.open('\\0','_blank');return false;\">\\0</a>"; $str=preg_replace($pattern,$replacement, $str); print $str; ?> ちなみにもともとアンカーにhrefとして指定されていると ダブルバインドしておかしくなりそうですね

dradra33
質問者

お礼

yambejpさま コメントありがとうございます。 今回の問題に関しては、 回答No.1で解決することができました。 上記のコードは今後の参考にさせていただきます。

関連するQ&A