I am not sure the proper name for it, but I am executing PHP code within a Bash script on my Linux server. I have two of these Bash files and want to be able to pass a GET variable from one file to the next.
Here is a simplified version of the 1st file:
#!/usr/bin/php -q
<?php
require("bash2.sh?id=1");
Here is a simplified version of the 2nd file:
#!/usr/bin/php -q
<?php
echo $_GET['id'];
Currently, when I execute the 1st file on a Crontab, I get an error that says :
PHP Warning: require(bash2.sh?id=1): failed to open stream: No such file or directory in /home/bash/bash1.sh on line 2
If I remove the ?id=1
from the require()
, it executes without an error.
You r thinking web...
What u put in the require
is the actual file name the PHP engine will look for
using the OS. i.e. it looks for a file called bash2.sh?id=1
which u obviously do not have.
Either u call another script from withing, say with system('./bash2.sh 2');
Or, include, and use the method below to pass data.
file1
<?php
$id = 1;
require("bash2.sh");
file2
<?php
echo $id;
If u use the first example ( system('./bash2.sh 2');
) Then in bash2.sh you will access the variable in the following way:
<?php
echo $argv[1]; //argv[0] is the script name
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With