目前,我使用strip_tags从我处理的字符串中删除所有html标签。 但是,我最近注意到它加入了包含在标签中的单词,即

$str = "<li>Hello</li><li>world</li>";
$result = strip_tags($str);
echo $result;
(prints HelloWorld)

你怎么能绕过这个?

===============>>#1 票数:2

你可以玩哪个正则表达式最好和替换:)

// ------------------------------------ 

function strip_html_tags($string) { 

    $string = str_replace("\r", ' ', $string); 
    $string = str_replace("\n", ' ', $string); 
    $string = str_replace("\t", ' ', $string); 
##  $string = str_replace("<li>', "\n* ", $string); 

##  $pattern = "/<.*?>/"; 
    $pattern = '/<[^>]*>/'; 

    $string= preg_replace ($pattern, ' ', $string); 

    $string= trim(preg_replace('/ {2,}/', ' ', $string));

return $string; 

}

// ------------------------------------ 

你也可以添加特殊的替换,例如: '<li>'"\\n* " ......或者其他:)

===============>>#2 票数:2

这完全取决于剥离HTML标记后您想要的输出。 例如:

如果你想在一个简单的项目列表中转换<li>标签,我建议你使用str_replace<li>替换为*</li>替换为\\n

strip_tags的建议是在没有任何其他转换的情况下删除HTML标记。

===============>>#3 票数:2

这将替换所有html标签(事实上,没有检查它是否真的是html),用空格替换所有html标签,然后将可能的双空格替换为单个空格并删除开始或结束空格。

$str = preg_replace("/<.*?>/", " ", $str);
$str = trim(str_replace("  ", " ", $str));

===============>>#4 票数:1

echo strip_tags( str_replace( '>', '> ', $string ));

这应该完全符合你所寻求的所有情况。

===============>>#5 票数:1

从你的代码中我发现Hello Word之间没有初始空格,你不希望strip_tags函数为你添加它,所以为了strip_tags函数准确地产生你想要的东西,我在之后添加了一个空格。第一个列表标记,结果是Hello world。

您可以复制并粘贴此代码并运行以查看差异。

    $str = "<li>Hello</li> <li>world</li>";
    $result = strip_tags($str);
    echo $result;
    //Expected result after Execution  is Hello world

===============>>#6 票数:1

你最好用htmlentities()

它不会删除<>,而是逃避它们。

  ask by Thomas translate from so

未解决问题?本站智能推荐:

1回复

php - 删除html标签

我正在使用个人项目中的contenteditable功能来更新sql数据库,但是当我更新内容时,它会将html标签添加到数据库中,即 在剥离这些标签方面,我的解决方案是什么? 我可以使用jquery或php吗? 有人能告诉我一些有用的例子吗? 这是我用来更新数据库的代码
2回复

使用Smarty从我的HTML中删除P标签

我正在使用此代码{$entry.entry|strip_tags}来删除标记,但我只想删除<p>标记而不是所有HTML标记 。 有人可以帮忙吗? 谢谢
1回复

问题从PHP中的字符串中删除HTML标签

我试图从字符串中删除所有HTML标记,但是当我将其回显时,html标记仍然存在。 它返回的内容与输入的内容相同。字符串为: 它实际上比这更长,但是作为示例,我已经将其削减了很多。
1回复

在php中显示xml内容后如何删除html标签?

在php中显示xml内容后如何删除html标签? 我也尝试了strip_tags但无法删除html标签吗? PHP代码 在php页面中显示xml内容 ** aboutus.xml文件** 显示内容截图 解
3回复

如何获取PHP strip_tags删除HTML和Script标签,但不删除XML?

我正在使用php strip_tags()函数从文本区域输入中删除html标记,并删除<script>标记以帮助防止脚本攻击。 无论如何,通常情况下,用户将需要输入事先未知的XML标签。 但是,我的strip_tags函数也正在删除这些良性xml标签,这是不可接受的。
2回复

从仅保留其中一个的字符串中删除所有html标签。 具有一个标识符属性的高级strip_tags

我需要删除一个字符串中的HTML标签,并仅保留其中一种类型。 我有一个包含此的字符串: <!-- comment --> <div id="55"> text </div> <span name=annotation value=125>
1回复

显示没有HTML标签的内容

我试图在我的网站上显示一些东西,但是它会返回HTML标签。 在这种情况下,在这里它将返回它与strong标签,但他们也是其他人与<i>和<em>这样的一个在这里 例: 当我var_dump那些它会返回这个: 我想要的是它只返回文本而不是<s
7回复

使用php剥离html标签

我如何剥离除pre标签内的内容以外的html标签 码 在使用strip_tags($ content,'')时,pre标签内的html也被剥夺了。 但我不希望剥离内部的html
1回复

PHP不会忽略html标签

我有输入框,用户在其中输入了字符串 但是在我将数据保存到数据库之前使用了strip_tags函数。 它获得了image标签, 但是字符串“ />被保存在数据库中。 我该如何克服。
2回复

只删除有效的html

我正在尝试从一段文本中剥离HTML标记。 但是麻烦是无论我使用什么-正则表达式,strip_tags等。都会遇到相同的问题:它还会剥离不是HTML而是看起来像文本的文本。 有办法解决这个问题吗?