从数据库处理内容为php
我不完全确定我需要在Google中搜索什么,并且一直在努力解决这个问题。从数据库处理内容为php
例如,我为项目编写了自己的CMS,并且处理内容存储在数据库中。
This is a link to a <a href="<?php get_url_by_id(487174) ?>">related page</a>.
在上面的例子中,我通过它的ID得到一个页面的URL,这样一来也不要紧,如果该URL的变化,它永远是最新的。
问题是PHP将它视为一个字符串,不会处理它。
我正在通过将内容写入文件,使用PHP包含文件,然后删除文件来解决此问题。我不认为这是一个有效的,并希望有更好的解决方案。
PHP将该内容读取为字符串,因为它是的一个字符串。
要使您的字符串功能为PHP,您需要使用PHP的eval()
函数。
// The string that is loaded from the DB, or wherever
$string = 'This is a link to a <a href="<?php get_url_by_id(487174) ?>">related page</a>.'
// Run the string as PHP code (notice the "echo" command)
eval("echo {$string}");
但是,这可能是非常危险的!如果您要这样做,请确定您知道正在执行的字符串!因为eval()
函数将运行放置在其中的任何PHP代码!即使网站破坏狗踢PHP代码!
更多关于eval()
功能可在PHP Docs for eval()
找到 -
我不知道您的具体情况,但我一般会建议不要使用eval()
尽可能。通常比使用eval()
函数更安全。
@PedroLobito您指的是**正在从数据库中拖出的字符串中正在调用的**函数 - 根本没有被调用,因为PHP将其解释为字符串。 –
我指的是函数'get_url_by_id' –
@PedroLobito是的,但这与OP的问题以及我的答案无关。 ''这是一个到related page的链接。''是一个字符串。 –
看到和处理'什么'? –
'get_url_by_id'的代码在哪里? –
代码与我的问题无关;它只是插入网址。 – CProetti