2

これが私のコードです

$str="<div>this is the variable</div>";

<div>strip_tagsを使用せずにhtmlタグを削除したい。$str="this is the variable" サーバーがstrip_tagsで動作していないため、必要です。preg_replaceで可能だと思います。しかし、私は正規表現を知りません。だから私に解決策を提案してください。

前もって感謝します。

4

6 に答える 6

9

このバリアントは、DIVタグに属性が含まれている場合にも機能します。

$str = '<div id="some_id">this is the variable</div>';
$str = preg_replace('/\<[\/]{0,1}div[^\>]*\>/i', '', $str);
echo $str;
于 2012-09-19T13:00:56.857 に答える
4

テキストの周りのタグを削除し、他のタグを保持する場合は、次を使用します。

$node = new DOMDocument();
$str = $node->loadXML($str)->firstChild->textContent;

警告:これにより、最初のラッパータグのみが削除されます

これにより、HTMLがマークアップとして解析されます。

于 2012-09-19T13:02:29.930 に答える
4
$s = "<div>this is the variable</div>";
echo preg_replace("/<div>(.*?)<\/div>/", "$1", $s);
// this is the variable

そしてもちろん、正規表現でHTMLを解析しないでください:-)

デモ

于 2012-09-19T12:55:11.273 に答える
0

あなたはこのようにすることができます:

$str="<div>this is the variable</div>";
$str = preg_replace('/<(.*?)>/i', '', $str);

それだけでなく、すべてのhtmlタグが削除されます<div>

于 2012-09-19T12:58:47.143 に答える
0

使用する

preg_replace("#<div>(.*?)</div>#s", "$1", $s);

s-DOTALL修飾子は、.一致する改行文字を作成します。

#--とは異なる正規表現区切り文字/であり、それらのおかげで、エスケープする必要はありません/

説明

--------------------------------------------------------------------------------
  <div>                    '<div>'
--------------------------------------------------------------------------------
  (                        group and capture to \1:
--------------------------------------------------------------------------------
    .*?                      any character (0 or more times, the least amount possible))
--------------------------------------------------------------------------------
  )                        end of \1
--------------------------------------------------------------------------------
  </div>                   '</div>'

$1、括弧内の最初のグループでキャプチャされたテキストへの後方参照です。

于 2021-05-11T18:48:53.320 に答える
-1

このようなdivタグの後でのみ、試してみることができます

preg_replace("</?div>","",$string);

もちろん、誰かがおそらく正規表現でhtmlを解析しないことに言及するでしょう

于 2012-09-19T12:55:52.983 に答える