在PHP中,将参数从函数传递到bash脚本

在PHP中,将参数从函数传递到bash脚本,php,bash,exec,args,Php,Bash,Exec,Args,我在网页上有一个菜单系统,允许用户从几个选项中进行选择。当选择某个选项时,我希望将其作为参数传递给函数。我想计算以查看所选内容,然后执行提供参数的脚本。我是PHP新手,但很高兴学习。下面是我在尝试消化相关解释之后的最佳尝试 public function getData($args=array()) { if(isset($args["what"])){ exec( '/home/foo/myscript.((string

我在网页上有一个菜单系统,允许用户从几个选项中进行选择。当选择某个选项时,我希望将其作为参数传递给函数。我想计算以查看所选内容,然后执行提供参数的脚本。我是PHP新手,但很高兴学习。下面是我在尝试消化相关解释之后的最佳尝试

public function getData($args=array()) {

        if(isset($args["what"])){
            exec(
                '/home/foo/myscript.((string)$args["what"]');
        }
        else{
            exec(
                '/home/foo/myscript()');
        }
    }
我怀疑我没有正确地解释shell脚本和参数之间的空间,但是我尝试过的看似合理的变体都失败了。我是在正确的轨道上,还是应该一起尝试另一种方式

exec('/home/foo/myscript.((string)$args["what"]');
问题是,当您开始尝试连接PHP时,您仍然在字符串中。先合上绳子

exec('/home/foo/myscript ' . (string)$args["what"] );
接下来,您需要更加安全地将参数传递给脚本,这样它们就不会被误解。看看escapeshellarg

另外,您可能不需要字符串,因为escapeshellarg无论如何只使用字符串。该参数中的任何内容都将转换为字符串

exec('/home/foo/myscript ' . escapeshellarg($args['what']) );

无论您在bash中做了什么,都可以重写为使用phpThanks来快速响应。问题的核心是,我从PHP获取arg,需要将其提供给bash。我不知道那应该是什么样子。也许我还没有看到完整的情况,但我认为我的问题并不是直接将bash重写为PHP。
exec('/home/foo/myscript ' . escapeshellarg($args['what']) );