2

私は例のためにいくつかのテキストを持っています:This is <b>an</b> example <b>text</b>.

太字のタグ内にあるすべてのテキストを削除するにはどうすればよいですか。次のように出力する必要があります。

This is example.

4

2 に答える 2

3

preg_replace()を使用
します。単純なタグとその中のテキストを削除する場合は、次のようにします。

<?php 
$string = 'This is <b>an</b> example <b>text</b>';
echo preg_replace('/(<b>.+?)+(<\/b>)/i', '', $string); 

出力:
これは例です


そして、正規表現(class、id)、スペーシングエラー、アンチスラッシュ:

<?php
$string = 'This is <b class="c1" id=\'c2\'>an</b> example <b>text</B >'; 
echo preg_replace('@<(\w+)\b.*?>.*?</\1.*?>@si', '', $string); 

出力:
これは例です

于 2012-08-06T22:28:35.670 に答える
2

簡単な解決策:

echo str_replace(array('<b>', '</b>'), '', 'This is <b>an</b> example <b>text</b>');

より良いテクニックがあるかもしれません。ここでは、配列内のすべてのシーケンスを空の文字に置き換えます。詳細については、php.netを参照してください。彼らはそこに同様の例を持っています:

// Provides: Hll Wrld f PHP
$vowels = array("a", "e", "i", "o", "u", "A", "E", "I", "O", "U");
$onlyconsonants = str_replace($vowels, "", "Hello World of PHP");

編集。正規表現タグを見逃しましたが、この目的では正規表現は少しやり過ぎですか?

于 2012-08-06T22:27:06.923 に答える