PHP-打印存储为字符串的变量
我用HTML和PHP编写了整个网站,但遇到了一个小问题。在几乎完成网站后,我被告知将所有内容放入数据库,而不仅仅是HTML。当我这样做的时候,我注意到当从数据库中获取带有内联PHP变量的文本时,不会被读取 原始代码:PHP-打印存储为字符串的变量,php,string,variables,Php,String,Variables,我用HTML和PHP编写了整个网站,但遇到了一个小问题。在几乎完成网站后,我被告知将所有内容放入数据库,而不仅仅是HTML。当我这样做的时候,我注意到当从数据库中获取带有内联PHP变量的文本时,不会被读取 原始代码: <div>Hello <?php echo $World; ?></div> 你好 新代码: <div><?php getContent("title"); ?></div> 我尝试了两种在数据库中存
<div>Hello <?php echo $World; ?></div>
你好
新代码:
<div><?php getContent("title"); ?></div>
我尝试了两种在数据库中存储它们的方法:第一种方法,文本保存:
Hello
它打印出
Hello
,并忽略变量
第二种方法,文本保存:Hello$World
它打印出的是
Hello$World
,而不是$World
我尝试过的其他事情:Hello$$World
-Hello$$World
Hello{$World}
-Hello{$World}
阅读关于sprintf
echo sprintf(“你好%s”,$World)代码>
并将该“Hello%s”
存储在数据库中,然后使用$World
像以前一样
如果您以正确的方式实现它,您可以使您的网站以不同的语言显示
但我认为您应该更多地了解php模板和/或使用php模板引擎
在评论中的注释之后:
有很多!!途径
php来做这件事
Hello
但最终,您只能在数据库中存储真实数据。
没有php代码或html,只有普通数据。其中一个可以是模板,如Hello%s
其他动态数据,如用户名或其他任何内容。模板引擎可以帮助您以正确的方式完成这一切。(模板大多基于文件)
记住这一点。您可以在文本中使用占位符,然后使用put将占位符替换为变量
数据库字符串:
<div>Hello WORLD_VAR</div>
所以你认为应该检查数据库中的每个文本是否存在变量?真的吗?您可以查看Smarty之类的模板包,或者使用占位符并使用str_replace替换它们。备受诟病的eval
也可能对您有所帮助,但我无法验证。天哪,不要使用eval
!“我被告知要把所有内容放在数据库中,而不仅仅是HTML”是谁告诉我的?去告诉他们他们很愚蠢。你可能应该使用某种模板框架。你不能只把PHP代码放在数据库里,但是其他变量呢?他想将所有PHP内容存储到database.Sry中,我两次点击了post
,但都没有完成这很好,但问题是,当其他人编辑内容时,如果没有编程经验,他们将无法通过数据库添加自己的变量或修改现有变量,他们将需要访问html文件,并有破坏网站的风险。
$text = str_replace('WORLD_VAR', $World, $text);