可以在php中包含的文件名中使用变量吗?

时间:2011-06-27 17:07:34

标签: php syntax include concatenation

我试图根据从另一个页面传递的变量包含不同的头文件。变量是$ section。这是我的代码:

 <?php include("header".$section.".php"); ?>

我试图根据变量$ section包含headerAbout.php或headerMenu.php或....但是我收到了一个错误:

 include(header.php) [function.include]: failed to open stream: No such file or directory

我不知道为什么变量没有被连接起来。有人可以澄清这个吗?

3 个答案:

答案 0 :(得分:2)

鉴于它没有被连接,变量未在您尝试在include中使用它时定义。你在哪里设定它的价值?

答案 1 :(得分:1)

是的,include language construct只需要string作为参数值。此字符串值可以来自字符串文字,variable / constant或任何其他返回字符串的表达式(例如函数/方法调用)。

错误的原因可能是$section不包含您期望的值。

请注意,您应该知道,如果您允许用户输入成为文件位置的一部分,则可能容易受到path traversal attacks的攻击。因此,请务必验证该值。

答案 2 :(得分:1)

工作正常。 $section可能不包含当前范围中的值或执行中的该值。