![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
お世話になります。
特定のタグに囲まれたテキスト部分の特定文字列を置換したいと思うのですが
なかなか解決策が浮かばず困っています。
例えば
$str = <<< EOM
<a href="watanabe/nakamura/test.html" alt="watanabesan">これがwatanabeですよ</a>
<a href="watanabe/nakamura/test.html" alt="nakamurakun">これがnakamuraですよ</a>
EOM;
という文字列があります
このaタグ間のテキスト部分の「watanabe」と「す」にだけ()を付けたい場合
どうすればいいでしょうか?
希望の結果
---
<a href="watanabe/nakamura/test.html" alt="watanabesan">これが(watanabe)で(す)よ</a>
<a href="watanabe/nakamura/test.html" alt="nakamurakun">これがnakamuraで(す)よ</a>
---
単純に置換しただけではタグ内の該当文字列も置換されてしまい困っています
foreach (array("watanabe","す") as $keyword){
$str = eregi_replace($keyword,'('."\\0".')',$str);
}
---
<a href="(watanabe)/nakamura/test.html" alt="(watanabe)san">これが(watanabe)で(す)よ</a>
<a href="(watanabe)/nakamura/test.html" alt="nakamurakun">これがnakamuraで(す)よ</a>
---
正規表現を使ってタグ内の文字を抽出という方法も考え抽出は出来たのですが
置換をかけてタグ間に戻す所でつまずいてしまいました。
何か良い方法はありますでしょうか?
アドバイスよろしくお願いします。
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));
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- JavaScript jqueryを使ったスムーススクロールのコードを書いたのですが、HTMLコード内にある、a butt 2 2022/04/14 10:59
- HTML・CSS FC2カートのテンプレートでの商品表示について 1 2023/03/02 18:05
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- HTML・CSS 【CSS】特定のリンクを含むaタグを指定できるかどうか? 3 2022/10/15 02:45
- HTML・CSS htmlについて質問です! 写真のように写真の部分が?になってしまいます。 ファイルもしっかり選べて 1 2023/07/09 21:17
- HTML・CSS CSSのホバーエフェクト 1 2023/06/19 06:53
- HTML・CSS htmltとcssの連携をして画像縮小について 1 2022/11/15 20:32
- HTML・CSS htmlとcssで吹き出しの中に文字を置きたいのですが、 html 〈div class bb〉 〈 3 2023/02/04 22:44
- HTML・CSS 書籍を見つつサイト造りの練習をしているのですが、見た目が一致しません 2 2022/11/28 15:00
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Nvuで作成したhtmlをコピペして...
-
csobjというタグについて
-
変数にHTMLを代入する場合
-
URLの連続アクセス
-
正規表現でタグの置換をしたい...
-
phpの正規表現でstyle="●●"を削...
-
VBAのコマンドボタンの文字列の...
-
ソースコードの1行が長いとき...
-
エクセルのCOUNTIFが正しくカウ...
-
メッセージボックスで1025文字...
-
文字の入力で横バー上段、中断...
-
エスケープ文字の復帰(¥r)と...
-
COBOLの改行
-
VBSで"をエスケープする文字は?
-
ダブルコーテーション(
-
VBAを使ってHTMLソースから特定...
-
コンボボックスの項目中に改行を
-
Excel関数「COUNTIF」で”文字”...
-
preg_matchでエラーが出ます。
-
携帯電話の相手の電話番号にメ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
[php][正規表現]タグ以外を削除...
-
正規表現で複数行に渡る範囲を...
-
変数にHTMLを代入する場合
-
phpの正規表現でstyle="●●"を削...
-
正規表現でタグの置換をしたい...
-
タグにはさまれている文字以外...
-
コメントタグに挟まれた部分を...
-
Nvuで作成したhtmlをコピペして...
-
htmlのソースからテーブルの値...
-
htmlタグ間の特定文字置換
-
スクレイピングの仕方
-
Java正規表現-"ある文字列"を含...
-
JSFタグのfタグとは
-
タグとクッキーって関係あるん...
-
eclipseより、タスク・タグの使...
-
PHP 取得した経過時間の表示に...
-
htmlソースの中を検索して、
-
srcに「banner.」で始まるファ...
-
アフィリエイトタグについて質...
-
アクセス解析データがでません...
おすすめ情報