看完这篇文章,你一定忘不掉htmlentities的用法
背景
今天有个需求,就是一个PHP开发的网址中,有一个页面可以提供给用户修改已经存在的PHP文件中的代码,并POST到服务器上保存。
每次将读出的内容输出到屏幕上的时候,都是空白的。这个问题困扰了我很久,如果你遇到的不是类似的问题,或者类似的反馈结果,这篇文章可能对你的帮助很小。
解决方法
这里介绍的是背景中的POST部分,读代码部分相同。
首先是接受POST动作内的代码是,code为POST过来用户修改的代码。
echo $_POST['code'];
从文件中读出的内容到文件上是注释,这是应为php并不是html代码,需要转换一下,添加htmlentities
函数
添加后,页面的源码是这个样子了
在控制台看是正常的,页面上却不是
需要添加code
标签,添加后
<pre><code><?php echo htmlentities($_POST['code']); ?></code></pre>
顺便把读文件部分的核心代码页放上吧
<pre class="hljs"><code class="php"><?php $file = "sys/func.php"; echo htmlentities(file_get_contents($file)); ?></code></pre>