如何在system()调用中使用PHP5变量
$ dir ='/ etc / somedir';
例如system("ls $dir")
我想我错过了什么
我实际上是从帖子中传递变量
e.g。
$username = $_POST[username];
进行系统调用
system(“processData --user $ username --pass $ password”);
这不起作用,所以我琐碎了一个简单的 示例
答案 0 :(得分:5)
你做得很好,除了你缺少分号(;
)
system("ls $dir");
你也可以这样做:
system("ls" . $dir);
注意:强>
允许用户提供的数据时 传递给这个函数,使用
escapeshellarg()
或escapeshellcmd()
确保这一点 用户无法欺骗系统 执行任意命令。
答案 1 :(得分:1)
您应该记住,system()
仅返回运行命令的最后一行。
也可以使用内置的php函数,例如dir()或DirectoryIterator
,而不是'ls'