在脚本之间包含来自另一个文件的php代码

时间:2013-10-17 04:55:03

标签: php

我想做的事情相当简单,但似乎不起作用。

在这个主页面中,我试图从其他页面插入一段代码。

<?php

include_once $_SERVER['DOCUMENT_ROOT'].'\attach\common.php';

$clear = False;

echo $code;

if($clear){
    echo 'Clear was cleared';
}

?>

这是common.php

<?php

$code = "if(isset($_GET['n'],$_GET['c'])) {";
$code .="   echo 'Name and Country were set <br />';";
$code .="   $clear = True;";
$code .="} else {";
$code .="   echo 'An error occured <br />';";
$code .="}";

?>

我怎么能在php中做到这一点?

更新

<?php
include_once $_SERVER['DOCUMENT_ROOT'].'\attach\common.php';
$clear = False;
d();
if($clear){
    echo 'Clear was cleared';
}
?>

<?php

function d() {
    if(isset($_GET['n'],$_GET['c'])) {
        echo 'Name and Country were set';
        $clear = True;
    } else {
        echo 'An error occured <br />';
    }
}
?>

2 个答案:

答案 0 :(得分:1)

请小心使用eval()因为这是实现您想要的非常危险方式。

为什么你不能把代码放在common.php而不是把它作为一个字符串放在变量中?

即。的common.php:

<?php
if(isset($_GET['n'],$_GET['c'])) {
   echo 'Name and Country were set <br />';
   $clear = true;
} else {
   echo 'An error occured <br />';
}
?>

-

如果你真的需要这样做:

使用eval()来解析$code。那是因为你的代码是一个字符串变量而不是实际的代码。

<?php

include_once $_SERVER['DOCUMENT_ROOT'].'\attach\common.php';

$clear = False;

eval($code);

if($clear){
    echo 'Clear was cleared';
}

?>

答案 1 :(得分:1)

您不会将代码放在字符串中以将其包含在另一个文件中,只需按原样放置代码即可。

common.php应该是

<?php

if(isset($_GET['n']) && isset($_GET['c'])) {
echo 'Name and Country were set <br />';
$clear = True;
} else {
   echo 'An error occured <br />';
}

?>