• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:htmlタグ間の特定文字置換)

HTMLタグ間の特定文字置換

このQ&Aのポイント
  • HTMLタグ間の特定文字列を置換する方法についてアドバイスをいただきたいです。
  • 単純な置換だけではタグ内の該当文字列も置換されてしまい困っています。
  • 正規表現を使ってタグ内の文字を抽出し、置換をかけてタグ間に戻す方法を教えてください。

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

  • ベストアンサー
  • bm_hiro
  • ベストアンサー率51% (200/388)
回答No.1

/* 今回、そちらが提示した条件であれば、以下のスクリプトで対応できますが、 文字列の規則性が変わった場合などは対応できないかと思われますので、 誰か 正規表現に詳しい方に 後はお任せします。 今回、書いたのは こんな感じですが、他のアプローチの仕方もあります。 */ $str = ' <a href="watanabe/nakamura/test.html" alt="watanabesan">これがwatanabeですよ</a> <a href="watanabe/nakamura/test.html" alt="nakamurakun">これがnakamuraですよ</a>'; $DimRaplace = array("watanabe" => "(watanabe)" , "す" => "(す)"); // 括弧をつけるのは自動化できるが、とりあえず、手入力で。 $DimData = explode("\n" , $str); $out = ""; foreach($DimData as $i => $dat) { $key = strip_tags(trim($dat)); // 1.タグを取り除いた文字列。今回は「これがwatanabeですよ」他 $key02 = strtr($key , $DimRaplace); // 2.↑ 1を元に $DimRaplace に従い 文字列の置き換え $out.= str_replace($key , $key02 , $dat); // 更に、元の文字列を対象とし、1と2の置き換え。 } print nl2br(htmlspecialchars($out));

y_satake01
質問者

お礼

なるほど!目から鱗です! 教わった方法で目的の事が実現出来ました! ありがとうございました。

関連するQ&A