php - 将 GET 变量从一个 Bash/PHP 脚本传递到另一个脚本

标签 php linux bash get

我不确定它的正确名称,但我正在我的 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 Warning: require(bash2.sh?id=1): failed to open stream: No such file or directory in /home/bash/bash1.sh on line 2

如果我从 require() 中删除 ?id=1,它会在没有错误的情况下执行。

最佳答案

你的思维网络... 您在 require 中输入的是 PHP 引擎将查找的实际文件名 使用操作系统。即它会寻找一个名为 bash2.sh?id=1 的文件,而您显然没有。

要么你从 withing 调用另一个脚本,比如 system('./bash2.sh 2'); 或者,包含并使用以下方法传递数据。

文件1

<?php
$id = 1;
require("bash2.sh");

文件2

<?php
echo $id;

如果您使用第一个示例 (system('./bash2.sh 2');) 那么在 bash2.sh 中您将通过以下方式访问变量:

<?php
echo $argv[1]; //argv[0] is the script name

关于php - 将 GET 变量从一个 Bash/PHP 脚本传递到另一个脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13588962/

相关文章:

linux - 如何在包含模式 [ :alpha:], 的任何行之前添加字符串 "<fc=ff00>"但不添加两个连续行?

linux - bash脚本: command not found

linux - Shell 脚本钻石

php - 检查 while 循环键是否存在于单独的数组中

php - MySQL表索引

php - 自定义 PHP 脚本主页上的重复内容

linux - 当我尝试运行从 Windows 系统编写的 Linux 脚本时出现 "No such file or directory"错误

linux - 信号&系统调用使用&关系

linux - 如何在 Unix 中通过 find 命令将文件名添加到找到的文件的最后一行

php - 使用php在mysql中存储电话号码时出错