0

次のhtml文字列の例があります。裸のテキストの周りにタグを追加したい:

$html='<span>text1</span>  text2   <a href="yahoo.com">yeahoo</a>   text4   <div>abc</div>  xyz';

正しくフォーマットされたhtmlを想定して、text2、text4、およびxyzの周りにタグ(例)を追加したいと思います。

次のような単純な関数を想定しています。$resHtml=addTagsToNakedText($html,'<span>','</span>');

最終結果は次のようになります。

'<span>text1</span><span>  text2   </span><a href="yahoo.com">yeahoo</a><span>   text4   </span><div>abc</div><span>  xyz</span>'

これを行う方法はありますか?これには正規表現機能が必要だと思います。

ありがとう

4

4 に答える 4

0

クレジットは次のようになります。

必須の回答リンク:stackoverflow.com/questions/1732348/…–昨日のSimpleCoder

ありがとう

于 2012-07-31T15:13:48.600 に答える
0

もう 1 つの楽しい演習は、カウンターを unsing して、ファイル内のすべての文字を解析することです。

  • 「<」に一致すると、カウンターは +1 になります。
  • 「/」に続いて「>」に一致すると、カウンターは -1 になります。
  • 「<」に続いて「/」に一致すると、カウンターは -1 になります。カウンターが 0 の場合、次の '>' を待機し、addTagsToNakedTex の 2 番目のパラメーターを追加します。1 になるとすぐに、addTagsToNakedTex の 3 番目のパラメーターの前に 1 文字追加します。

ただし、終了タグの「<」と「/」の間にスペースがないなど、定義済みのコーディング スタイルがあることを意味します。

于 2012-07-30T01:08:27.247 に答える
0

最善の策は、DOM 関数で操作できる HTML フラグメントに文字列を解析することです。これを行う方法は、読者に委ねられた演習です。

代わりのハックは、タグのバランスをとり、いつテキストを折り返すかを知る簡単なパーサーを書くことです。繰り返しますが、これは読者のための演習です。

于 2012-07-30T00:59:50.517 に答える
0
function tags($tag_open, $text, $tag_close) {<br />
   return $tag_open.$text.$tag_close;<br />
}
$output_string = tags('< span >', 'Enter some text in here..', '< / span >');
于 2012-07-30T01:13:38.413 に答える