GNU/Linux >> Belajar Linux >  >> Linux

PHP meneruskan $_GET di command prompt linux

Dari jawaban ini di ServerFault:

Gunakan php-cgi biner bukan hanya php , dan berikan argumen pada baris perintah, seperti ini:

php-cgi -f index.php left=1058 right=1067 class=A language=English

Yang menempatkan ini di $_GET :

Array
(
    [left] => 1058
    [right] => 1067
    [class] => A
    [language] => English
)

Anda juga dapat menyetel variabel lingkungan yang akan disetel oleh server web, seperti ini:

REQUEST_URI='/index.php' SCRIPT_NAME='/index.php' php-cgi -f index.php left=1058 right=1067 class=A language=English

Biasanya, untuk meneruskan argumen ke skrip baris perintah, Anda akan menggunakan argv variabel global atau getopt:

// bash command:
//   php -e myscript.php hello
echo $argv[1]; // prints hello

// bash command:
//   php -e myscript.php -f=world
$opts = getopt('f:');
echo $opts['f']; // prints world

$_GET mengacu pada parameter metode HTTP GET, yang tidak tersedia di baris perintah, karena memerlukan server web untuk mengisinya.

Jika Anda benar-benar ingin mengisi $_GET, Anda dapat melakukan ini:

// bash command:
//   export QUERY_STRING="var=value&arg=value" ; php -e myscript.php
parse_str($_SERVER['QUERY_STRING'], $_GET);
print_r($_GET);
/* outputs:
     Array(
        [var] => value
        [arg] => value
     )
*/

Anda juga dapat menjalankan skrip yang diberikan, mengisi $_GET dari baris perintah, tanpa harus mengubah skrip tersebut:

export QUERY_STRING="var=value&arg=value" ; \
php -e -r 'parse_str($_SERVER["QUERY_STRING"], $_GET); include "index.php";'

Perhatikan bahwa Anda dapat melakukan hal yang sama dengan $_POST dan $_COOKIE juga.


Saya tidak memiliki biner php-cgi di Ubuntu, jadi saya melakukan ini:

% alias php-cgi="php -r '"'parse_str(implode("&", array_slice($argv, 2)), $_GET); include($argv[1]);'"' --"
% php-cgi test1.php foo=123
<html>
You set foo to 123.
</html>

%cat test1.php
<html>You set foo to <?php print $_GET['foo']?>.</html>

Linux
  1. 25 contoh sederhana perintah find Linux

  2. Perintah mv Linux

  3. Meneruskan parameter $_GET ke tugas cron

  1. Linux du perintah

  2. Perintah ip Linux

  3. Perintah cd Linux

  1. Perintah ifconfig Linux

  2. Perintah Waktu Linux

  3. Perintah Ping di Linux