我有一个简单的格式化/编写脚本,但每当我保存并阅读它(在<textarea>
HTML标签内写入)时,我会得到一些奇怪的空字符,比如当你按下Tab键时文本编辑器,在实际文本之前和之后。如果我用文本编辑器打开写入的文件,那么只有文本。这是我的脚本(仅限相关代码):
<?php
$text = $_POST["info"];
$text = str_replace("\n", "<br />", $text);
$text = preg_replace('/\*([^\*]+)\*/', '<b>\1</b>', $text);
if ($_POST["updateContato"]="updateContato") {
$file = fopen("./pages/contato.php","w");
fwrite($file, $text);
fclose($file);
}
?>
<form action="./?painel" method="post">
<textarea name="info" class="fullwidth">
<?php include "./pages/contato.php";?>
</textarea> <br />
<input type="checkbox" name="updateContato" value="updateContato" checked style="display:none;height:0;width:0;" />
<input type="submit" value="Salvar" />
</form>
答案 0 :(得分:0)
如果您使用此代码呈现<textarea>
的内容,则应将其放在开始和结束标记之间,而不添加任何标签,内容和标记之间的新行或空格!
<form action="./?painel" method="post">
<textarea name="info" class="fullwidth"><?php include "./pages/contato.php";?></textarea> <br />
<input type="checkbox" name="updateContato" value="updateContato" checked style="display:none;height:0;width:0;" />
<input type="submit" value="Salvar" />
</form>
另一方面,您是否使用return
关键字从"./pages/contato.php"
返回内容?
如果不这样做,include "..."
不是用来返回文本数据的好选择。
而是将您的数据保存到常规文件(在非公共文件夹中)而不是包含它,请使用file_get_contents()
阅读:
<form action="./?painel" method="post">
<textarea name="info" class="fullwidth"><?php echo file_get_contents("./pages/contato.php"); ?></textarea> <br />
<input type="checkbox" name="updateContato" value="updateContato" checked style="display:none;height:0;width:0;" />
<input type="submit" value="Salvar" />
</form>
另一方面,调用include "some_script.php"
实际上会执行脚本,如果你像在你的例子中那样在脚本中写东西,那里如果您向公众或客户提供此功能(或者甚至自己使用此功能),则很可能出现代码/解析错误并构成严重的安全风险。即使你在被调用脚本中使用return,它仍然是重要的安全漏洞。
我强烈建议您改用file_get_contents()
!