PHP - 打印存储为字符串

时间:2016-11-14 20:48:43

标签: php string variables

我用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}

2 个答案:

答案 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);