HTMLでマークアップされている、ランダムな文章をタグ部分と文字列部分にわけたいです。
HTML
1<br>123<br><hr>あああ<iframe>456</iframe>いいい<br>
このような文章をタグ部分、文字列部分にわけ配列化したいと考えています。
「あああ」手前の<br><hr>部分のような連続タグは1つにまとめたいです。
希望する形は
PHP
1$tag_array=array("<br>","<br><hr>","<iframe>","</iframe>","<br>"); 2$str_array=array("123","あああ","456","いいい");
となります。
目的は文字列部分のみ翻訳・解析などを行って、解析後に元のHTMLの形で文字列の変更を考えています。
あああ→ううう
いいい→えええのような置き換えを決定後、
配列を基に、
HTML
1<br>123<br><hr>ううう<iframe>456</iframe>えええ<br>
の様な形にしたいです。
*タグを残したまま翻訳・解析などを行い置き換えますと、ALT=,SRC=の部分にまで影響が出てしまい問題があります。
タグ部分のみをpreg_replaceで任意の記号に置き換えて戻そうなどと試してみましたが、うまく行っておりません。
良案ございませんでしょうか?
まずはご自身がやってみたコードをの提示ください
うまくいきませんでしたが、
$html="<br>123<br><hr>あああ<iframe>456</iframe>いいい<br>";
$html_2=preg_replace('/<("[^"]*"|\'[^\']*\'|[^\'">])*>/','#_#_#',$html);//タグ部分を記号に置き換え
その後、$html_2の#_#_#と#_#_#の間の文字列を抜き文字列配列を作り、$htmlの「あああ」の部分を置き換えようとしたが、あああの開始位置がわからないため、直前のタグに「ALT=あああ」などがあるとおかしくなる。
質問は編集できますので。
あと「うまくいかない」「おかしくなる」ではなく「起きている現象」を記載してください。
プログラムは書いた通りに動いてますので。
回答1件
あなたの回答
tips
プレビュー