[英]Passing GET Variable from one Bash/PHP Script to another
我不确定它的正确名称,但是我正在Linux服务器上的Bash脚本中执行PHP代码。 我有两个这样的Bash文件,希望能够将GET变量从一个文件传递到下一个文件。
这是第一个文件的简化版本:
#!/usr/bin/php -q
<?php
require("bash2.sh?id=1");
这是第二个文件的简化版本:
#!/usr/bin/php -q
<?php
echo $_GET['id'];
当前,当我在Crontab上执行第一个文件时,出现错误消息:
PHP警告:require(bash2.sh?id=1):无法打开流:第2行的/home/bash/bash1.sh中没有此类文件或目录
如果我从require()
删除?id=1
,它会执行而不会出错。
您正在考虑网络...您require
是PHP引擎将使用OS查找的实际文件名。 即它会查找一个名为bash2.sh?id=1
的文件,而您显然没有。
您要么从system('./bash2.sh 2');
调用另一个脚本,例如使用system('./bash2.sh 2');
或者,包括并使用以下方法传递数据。
文件1
<?php
$id = 1;
require("bash2.sh");
文件2
<?php
echo $id;
如果u使用第一个示例( system('./bash2.sh 2');
),则在bash2.sh中,您将通过以下方式访问变量:
<?php
echo $argv[1]; //argv[0] is the script name
您不能将参数添加到硬盘上的静态文件中。 但是您可以定义一个全局变量,所需的脚本可以访问该变量。
<?php
$id=1
require("bash2.php");
而对于您的bash2.php:
<?php
echo $id;
老兄,您不应该使用参数。 当您执行php脚本时(我猜是在cron工作中),您添加了诸如some.php variable1 variable2
..... etc等参数,
然后在php中,用$argv[0], $argv[1] .... etc
得到该变量。
这就是bash脚本的方式。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.