我想做的事情相当简单,但似乎不起作用。
在这个主页面中,我试图从其他页面插入一段代码。
<?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 />';
}
}
?>
答案 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 />';
}
?>