用PHP代码将html标记存储到php变量中的最佳/最安全的方法是什么?或者是否有更好的解决方案而不是将其存储到变量中?
编辑:抱歉不包括我想要做的事情!我有一个文章模板,从数据库中提取所有信息(标题/日期/内容/等)并加载它。我有一个页面,您提交一篇文章,我想要做的是自动化文件创建过程。我想创建一个名为文章标题的文件,然后将模板代码写入其中(因此包含模板代码并使用fwrite()的变量)。我知道我可以将模板文件保存在网站上并将其复制/重命名,但如果有人偶然发现模板,那将是一个完整的混乱,我也不想将其存储为纯文本。答案 0 :(得分:4)
我更喜欢这样的东西
$str = <<<EOD
Example of string with html <div>some sample text</div>
spanning multiple lines <span>span text!</span>
using heredoc syntax.
EOD;
答案 1 :(得分:1)
如果您正在使用公共网站,我不建议在您的服务器上存储文件等文章。它很混乱,安全 - 不确定,内存效率低,而且非正统。
这可能是使用MySQL数据库的一个很好的情况。我假设您知道如何使用PHP,但如果您不知道如何使用,请告诉我。
通过这种方式,您可以使用PHP的htmlentities()
函数将HTML存储在数据库中:
$var = htmlentities($var, ENT_QUOTES);
这样,所有html字符(例如“&lt;”,“&gt;”和引号)都安全地编码到数据库中。例如,
<strong>Here is HTML</strong>
变为<strong>Here is HTML</strong>
这样,如果您的模板有任何HTML,可以通过mysql_query()
轻松安全地检索它们并显示。
答案 2 :(得分:0)
我将它存储在一个文件中,然后当有人想要创建一篇新文章时,用DOMDocument加载它,替换你需要替换的元素,并使用DOMDocument :: saveHTML来转储代码当你完成了=)
答案 3 :(得分:0)
这将为EDO提供更清洁的方式...
<?php ob_start(); ?>
<div>HTML goes here...</div>
<div>More HTML...</div>
<?php $my_var = ob_get_clean(); ?>