PHP服务器端包括

时间:2012-08-06 18:54:55

标签: php include

我有一个包含以下内容的PHP文件:

<?php
$myflash  = $_GET["flashname"];
$mytitl   = $_GET["titlname"];
$myqgif   = $_GET["flashgif"];
$mytxt    = $_GET["txtname"];
?>

<?php
include('01.txt');
?>

显示正确。但是当我使用以下内容时:

<?php
include('<?php echo $mytxt; ?>.txt');
?>

不显示。

4 个答案:

答案 0 :(得分:3)

?php
include('<?php echo $mytxt; ?>.txt');
?>

是无效的PHP语法... <?php ?>内的代码已经是PHP代码。你不要在其中添加更多的php标签。

您只想使用:

<?php
    include($mytxt . '.txt');
?>

你有PHP代码的php标签,然后是一个include语句。在该语句中,您连接两个字符串($mytxt.txt)以形成要包含的文件名。

请确保在包含之前清理您的输入。有人可以轻松更改GET参数,您的脚本将include他们想要的任何文件。在包含之前,请确保文件位于您希望的位置。

答案 1 :(得分:2)

你不能在字符串中做回声。相反,您正在寻找字符串连接:

include( $mytxt . '.txt');

请注意,您必须清理$mytxt以避免Local File Inclusion(LFI)漏洞。

答案 2 :(得分:0)

<?php
include('<?php echo $mytxt; ?>.txt');
?>

已经是PHP了。你不需要重新打开你的php标签。

<?php
include($mytxt . ".txt");
?>

答案 3 :(得分:0)

它不会显示任何内容,因为include函数将参数作为文件名和路径,而不是PHP代码。

如果您将echo $mytxt;放入foobar.php并说出include('foobar.php');它就可以了。但它目前的形式毫无意义。

正在显示01.txt,因为它的内容(01.txt是一个文件)被加载到代码中。主要是因为它不是PHP代码,它将被转储到浏览器。应该使用Include来在我们的代码中执行其他PHP脚本。