2012-06-15 91 views
0

我正在用PHP编写代码,需要包含一个config.php文件,具体取决于网站的URL。如何动态地包含PHP脚本?

我在变量$site中设置了网址,而$site的设置位于configs/$site/config.php

如何在PHP中动态地要求此文件?

安全吗include "configs/$site/config.php";

+1

你说“要求”,但然后你演示'包括'...? –

+0

确实,你可能想要使用'require'configs/$ site/config.php';' –

+1

@FrankPresenciaFandos - 在这种情况下,对于'config'文件,'require_once'可能是最有用的方法。 –

回答

7

如果将$site限制为一组值,是的。

$sites = array(
    'siteA', 
    'siteB' 
); 
if (isset($sites[$site])) { 
    include "configs/$site/config.php"; 
} else { 
    throw new Exception("Unknown site"); 
} 

但是请记住:从外部决不信任任何事情,总是验证值,即来自客户端(浏览器)。

+0

永远不要相信。始终验证。得到它了! – bodacydo

0

这很好。只要确保用户不能更改$site变量!如果用户可以改变它,他可以让它包含任何文件。

+0

'$ site'取决于'Host'头文件,感谢提醒我,如果用户将'Host'设置为'../../file \ 0'或类似的东西! – bodacydo