10

HTML タグを削除するコードを書きましたがa<b、文字列の型も削除しています。2<3やのような文字列を削除しないようにしたいa<b

$term="a<b";
echo "Text is--->".preg_replace('/(?:<|&lt;).+?(?:>|&gt;)/', '', $term);

LT または GT を削除せずに、文字列内の html タグを削除するにはどうすればよいですか?

4

5 に答える 5

10

申し訳ありませんが、十分に検証していませんでした。

以下のphp5-cli式を確認しました。

(?:<|&lt;)\/?([a-zA-Z]+) *[^<\/]*?(?:>|&gt;)

PHP コードは次のようになります。

#!/usr/bin/php 
<?php

$str = "<html></html>
a<b 1<2 3>1 
<body>1>2</body>
<style file=\"'googe'\" alt=\"google\">hello world</style>
<have a good efghijknopqweryuip[]asdfgghjkzxcv bnm,.me>hello world<> google com</s>
<a se=\"font: googe;\">abcde</a>";

echo "text--->".preg_replace('/(?:<|&lt;)\/?([a-zA-Z]+) *[^<\/]*?(?:>|&gt;)/', '', $str)."\n";

?>

結果:

text--->
a<b 1<2 3>1 
1>2
hello world
hello world<> google com
abcde
于 2012-07-11T08:55:46.260 に答える
8

PHPのストリップタグ機能を利用する

echo strip_tags($html)
于 2012-07-10T11:57:11.257 に答える
1

コンテンツを含む PHP 文字列からすべての HTML タグを削除してください!

文字列にアンカータグが含まれていて、コンテンツを含むこのタグを削除したい場合、このメソッドが役立ちます。

$srting = '<a title="" href="/index.html"><b>Some Text</b></a> a<b';

echo strip_tags_content($srting);

function strip_tags_content($text) {

    return preg_replace('@<(\w+)\b.*?>.*?</\1>@si', '', $text);
    
 }

出力:

a < b

取得元: PHP 文字列からすべての html タグを削除する

于 2017-04-24T05:36:46.767 に答える
1

Strip_tags 関数は良い解決策です。

ただし、正規表現が必要な場合は、以下の式を使用してください。

(?:<|&lt;)\/?([a-z]+) *[^\/(?:<|&lt;)]*?(?:>|&gt;)

于 2012-07-10T12:49:51.953 に答える
-1

strip_tagsを使用する

//If you want to allow some tags
$term = strip_tags($term,"<b>");
于 2012-07-10T11:59:53.790 に答える