php - 将多个 PHP 变量传递给 shell_exec()?

标签 php shell shell-exec

<分区>

我正在使用 shell_exec 方法从 PHP 调用 test.sh。

$my_url="http://www.somesite.com/";
$my_refer="http://www.somesite.com/";
$page = shell_exec('/tmp/my_script.php $my_url $my_refer');

但是,命令行脚本说它只接收到 1 个参数:/tmp/my_script.php

当我将调用更改为:

代码:

$page = shell_exec('/tmp/my_script.php {$my_url} {$my_refer}');

它说它收到了 3 个参数,但是 argv[1] 和 argv[2] 是空的。

当我将调用更改为:

代码:

$page = shell_exec('/tmp/my_script.php "http://www.somesite.com/" "http://www.somesite.com/"');

脚本最终按预期接收了所有 3 个参数。

您是否总是必须在脚本中发送仅引用的文本,并且不允许发送像 $var 这样的变量?或者是否有一些特殊的方式必须发送 $var?

最佳答案

改变

$page = shell_exec('/tmp/my_script.php $my_url $my_refer');

$page = shell_exec("/tmp/my_script.php $my_url $my_refer");

$page = shell_exec('/tmp/my_script.php "'.$my_url.'""'.$my_refer.'"');

还要确保使用 escapeshellarg在你的两个值(value)观上。

例子:

$my_url=escapeshellarg($my_url);
$my_refer=escapeshellarg($my_refer);

关于php - 将多个 PHP 变量传递给 shell_exec()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16932113/

相关文章:

linux - 从 json 文件 curl 下载 json 文件

linux - 如何使用 bash 脚本在 Linux 中找到以 root 身份登录的用户?

php - exec ('top' , $output) 返回一个空数组?

php - 将多个动态数组传递给 php 一些隐藏的

javascript - 在移动设备上查看时布局扭曲

mysql - 从unix迭代并写入mysql

PHP shell_exec ssh连接

php - PHP 中的 shell_exec()

php - 计数不能与 UNION 一起正常工作

java - 从 PHP 页面 android 写入文件