
お世話になります。
特定のタグに囲まれたテキスト部分の特定文字列を置換したいと思うのですが
なかなか解決策が浮かばず困っています。
例えば
$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ランキング
-
自分でタグ打ちして作ったペー...
-
htmlspecialcharsで特定のタグ...
-
srcに「banner.」で始まるファ...
-
J-SH09 でのウェブ表示
-
cHTMLのタグはHDMLでは
-
クリッカブルマップはネスケで...
-
タイトルタグの重複の減らし方
-
htmlspecialchars関数を使いな...
-
VBSでのhtmlタグ要素名の置換
-
ホームページ作成 区切り線、<...
-
ホームページのアクセスカウン...
-
特定のタグから特定のタグまで...
-
タグにはさまれている文字以外...
-
コメントタグに挟まれた部分を...
-
Strutsでリンクを動的に生成したい
-
PHPスクレイピングが上手くいき...
-
VBAのコマンドボタンの文字列の...
-
1文字のStrConv fromUnicode
-
jsp 改行コードで改行させて表...
-
エクセルのCOUNTIFが正しくカウ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
htmlのソースからテーブルの値...
-
htmlタグ間の特定文字置換
-
Nvuで作成したhtmlをコピペして...
-
タグにはさまれている文字以外...
-
reuterの記事をbeautiful.soup....
-
強制ジャンプを中止したいです。
-
URLの連続アクセス
-
タグとクッキーって関係あるん...
-
wordpressでthe_content内の置換
-
cHTMLのタグはHDMLでは
-
PHP、正規表現で特定タグコード...
-
alt属性を残してタグを排除
-
eclipseより、タスク・タグの使...
-
array_sliceの使い方がわかりま...
-
タイトルタグの重複の減らし方
-
Strutsでリンクを動的に生成したい
-
xhtmlの最初の行に半角スペース...
-
html table のcaptionタグのseo...
-
preg_match_allで正規表現
-
MP3のコメントタグやSYLTの詳細
おすすめ情報