これが私のコードです
$str="<div>this is the variable</div>";
<div>
strip_tagsを使用せずにhtmlタグを削除したい。$str="this is the variable"
サーバーがstrip_tagsで動作していないため、必要です。preg_replaceで可能だと思います。しかし、私は正規表現を知りません。だから私に解決策を提案してください。
前もって感謝します。
このバリアントは、DIVタグに属性が含まれている場合にも機能します。
$str = '<div id="some_id">this is the variable</div>';
$str = preg_replace('/\<[\/]{0,1}div[^\>]*\>/i', '', $str);
echo $str;
テキストの周りのタグを削除し、他のタグを保持する場合は、次を使用します。
$node = new DOMDocument();
$str = $node->loadXML($str)->firstChild->textContent;
警告:これにより、最初のラッパータグのみが削除されます
これにより、HTMLがマークアップとして解析されます。
$s = "<div>this is the variable</div>";
echo preg_replace("/<div>(.*?)<\/div>/", "$1", $s);
// this is the variable
そしてもちろん、正規表現でHTMLを解析しないでください:-)
デモ。
あなたはこのようにすることができます:
$str="<div>this is the variable</div>";
$str = preg_replace('/<(.*?)>/i', '', $str);
それだけでなく、すべてのhtmlタグが削除されます<div>
使用する
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
、括弧内の最初のグループでキャプチャされたテキストへの後方参照です。
このようなdivタグの後でのみ、試してみることができます
preg_replace("</?div>","",$string);
もちろん、誰かがおそらく正規表現でhtmlを解析しないことに言及するでしょう