我用HTML和PHP编写了整个网站,但我遇到了一个小问题。在几乎完成网站后,我被告知要将所有内容放在数据库中,而不仅仅是HTML。正如我所做的那样,我注意到当从数据库中获取时,内联PHP变量的文本不会被读取。
原始代码:
<div>Hello <?php echo $World; ?></div>
新守则:
<div><?php getContent("title"); ?></div>
我尝试了两种方法将它们存储在数据库中:
第一种方法,保存的文字:Hello <?php echo $World; ?>
打印出Hello
并忽略变量。
第二种方法,保存的文字:Hello $World
其中打印出Hello $World
而不是$World
我尝试过的其他事情:
Hello $$World
- Hello $$World
Hello {$World}
- Hello {$World}
答案 0 :(得分:1)
了解sprintf
echo sprintf("Hello %s",$World);
并将"Hello %s"
存储在数据库中并使用$World
就像之前一样。
如果您以正确的方式实施,您可以使用不同语言展示您的网站。
但我认为你应该更多地在php中进行模板化和/或使用php的模板引擎。
http://php.net/manual/de/function.sprintf.php
https://de.wikipedia.org/wiki/Template-Engine#Template-Engines_f.C3.BCr_PHP
在评论中的注释之后:
很多!!方式
php来做这个
Hello <?php echo $World; ?>
但最终您只将实际数据存储在数据库中。
没有PHP代码或HTML只是简单的数据。其中一个可以是Hello %s
等其他动态数据(如用户名或其他)的模板。模板引擎可以帮助您以适当的方式完成所有操作。 (模板基于文件,主要是)
记住这一点。
答案 1 :(得分:1)
您可以在文本中使用占位符,然后使用str_replace将占位符替换为您的变量。
数据库字符串:
<div>Hello WORLD_VAR</div>
在代码中:
$text = str_replace('WORLD_VAR', $World, $text);