我想将html更新到数据库时禁用html标签

时间:2012-11-29 11:26:21

标签: php html mysql

我创建了一个php应用程序。其中我将html页面存储在mysql中并从db中检索。我设计它是为了删除或在页面中添加数据,所以我创建数据库,所以现在问题是当我想编辑放置在textarea中的数据时它保存并更新但在textarea中它显示所有带有html代码的文本等在整个页面中提取和修改文本很痛苦。

是否有任何方法不会显示html标签以及我想要显示或隐藏的标签。

是mysql方面还是php方面的任何解决方案。

4 个答案:

答案 0 :(得分:0)

您可以使用php strip_tags方法。

<?php
$text = '<p>Test paragraph.</p><!-- Comment --> <a href="#fragment">Other text</a>';
echo strip_tags($text);
echo "\n";

// Allow <p> and <a>
echo strip_tags($text, '<p><a>');
?>

答案 1 :(得分:0)

如果您想要保留HTML格式,以便当它在页面上显示时,它周围有HTML标记(听起来像原始计划),那么您可以使用WYSIWIG编辑器。这是一对夫妇:

它们都可以配置为允许您想要的任何HTML元素。 请记住验证并验证PHP何时处理。 我最近开始使用HTML Purifier来检查HTML。

如果您对保持HTML格式不感兴趣,请使用strip_tags()

答案 2 :(得分:0)

您的问题涉及客户端和WYSIWYG JS库,这将使文本编辑更加舒适。

看看这些解决方案:

答案 3 :(得分:0)

您可以解析HTML DOM,这样您就可以添加,删除,编辑任何元素。我建议您使用simple_html_dom php native DOM

以下是使用简单的html dom删除特定html标记的示例

<?php

$html = new simple_html_dom();
$html->load('<html><body><span>removeme</span></body></html>');
$html->set_callback('remove_tag');

function remove_tag($element)
{
 if($element->tag == 'span'){ $element->outertext = ""; 
}

&GT;

您还可以使用正则表达式删除特定标记

<?php

$html = preg_replace("/<span[^>]+\>/i", "", $html);

?>