1

我有一个用于编辑文件、html、php 等的 PHP 脚本。

它正在完整地工作,除了当您输入 textarea 表单字段时,例如:

<div>
& nbsp; or & amp;
</div>

特殊字符会自动转换为空格和 & 符号。

但是文件编辑器的目的是准确输入您需要的内容并显示出来,因为 html 代码可能必须以实体形式编写,也可能不必编写,我不希望它们自动转换为非实体形式。htmlspecialchars 或 htmlentities 不起作用,因为整个文档都被转换为特殊字符

使用 htmlspecialchars 时的文档视图源是:

&lt;!DOCTYPE html PUBLIC&gt;

&lt;html&gt;

&lt;head&gt;

&lt;title&gt;Test&lt;/title&gt;

etc...

然后在浏览器中输出为:

<!DOCTYPE html PUBLIC> <html> <head> <title>Test</title> </head> <body> TEST  x &nbsp; </body> </html>

我有这个唯一的困境。如果只是简单地从处理 post 数据中删除 htmlspecialchars,那么,除了 html 实体会自动转换为可读形式之外,一切都可以正常工作, 到空间和& 与 &

有任何想法吗?我知道 cPanel 在他们的文件编辑器、net2ftp 和许多其他基于 Web 的文件文本编辑器中设法做到了这一点。

谢谢

4

1 回答 1

0

如果您使用的是 htmlspecialchars,它会将任何不是字母数字的内容转换为 html 实体,因此它实际上会在浏览器中呈现符号,而不是将其用作标记。您可以将用户输入的任何内容存储为纯文本,然后在需要显示时将其回显到页面上。该代码在我尝试时有效,因为我相信您正在尝试做的事情。

<?php
 $var = $_POST['var'];
 echo $var;

 ?>

<form id='form' action='' method='post'/>
<textarea form='form' name='var'></textarea>
<input type='submit' value='submit'/>

于 2012-01-14T10:45:34.150 回答