2016-05-14 69 views
0

我不完全确定我需要在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包含文件,然后删除文件来解决此问题。我不认为这是一个有效的,并希望有更好的解决方案。

+0

看到和处理'什么'? –

+0

'get_url_by_id'的代码在哪里? –

+0

<?php echo get_url_by_id(487174)?>代码与我的问题无关;它只是插入网址。 – CProetti

回答

1

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()函数更安全。

+0

@PedroLobito您指的是**正在从数据库中拖出的字符串中正在调用的**函数 - 根本没有被调用,因为PHP将其解释为字符串。 –

+0

我指的是函数'get_url_by_id' –

+0

@PedroLobito是的,但这与OP的问题以及我的答案无关。 ''这是一个到related page的链接。''是一个字符串。 –