看完這篇文章,你一定忘不掉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>