我想要实现一些目标,但我不知道我该怎么做。
例如,检查此脚本。<?php
function runscript()
{
unlink('./images/a.php');
}
?>
我希望以特定的方式运行
我看了要以字符串
分配的脚本unlink('./images/a.php');
对于conceptualy说,像这样
$a = "unlink('./images/a.php');";
然后我想以某种方式执行脚本来运行$ a,这将最终运行 -
unlink('./images/a.php');
说出这样的话
eval($a);
我怎样才能实现这个目标...... ??
答案 0 :(得分:1)
在大多数情况下,使用eval存在安全风险和错误策略的证据。
如果您不想污染全局范围使用命名空间(您甚至可以在php 5.6中导入和别名命名空间函数)。
如果您希望能够在代码中移动函数(例如,对于回调或插件系统等...),您可以使用闭包。
<?php
// php 5.3+
$a = function($file) {
unlink($file);
};
// later:
$a('./data/delete.me');
答案 1 :(得分:0)
我不确定你会成功,但你会这样尝试。这样的
$a= unlink('./images/a.php');
if($a)
{
echo "successful";
}
else
{
echo "not successful";
}
可能会对你有所帮助。祝你好运!
答案 2 :(得分:0)
您可以将代码设为tmp文件并将其包含在内
<?php
$code = $_POST['code'];
//uniqid for random folder
$id = uniqid();
$f = fopen($id . ".php" , 'w');
fwrite($f , $code);
fclose($f);
header("Location: view_code.php?id=" . $id);
?>
然后是你的viewcode.php
<?php
$id = $_GET['id'];
//code to run then
include($id . ".php");
?>
答案 3 :(得分:0)
试试这个:
$a= "unlink('./images/a.php');";
eval($a);
您可以使用eval()来评估字符串语句