0

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

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

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

4

4 回答 4

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>');
?>
于 2012-11-29T11:29:23.230 回答
0

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

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

如果您对保持 HTML 格式不感兴趣,那么只需使用strip_tags().

于 2012-11-29T11:31:03.747 回答
0

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

看看这些解决方案:

于 2012-11-29T11:35:01.917 回答
0

您可以解析 HTML DOM,这将允许您添加、删除、编辑任何元素。我会推荐你​​使用simple_html_dom php 原生 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 = ""; 
}

?>

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

<?php

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

?>
于 2012-11-29T11:35:17.933 回答