GNU/Linux >> Linux の 問題 >  >> Linux

Linuxコマンドプロンプトで$ _GETを渡すPHP

ServerFault に関するこの回答から:

php-cgi を使用 php ではなくバイナリ を入力し、次のようにコマンド ラインで引数を渡します。

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

これを $_GET に入れると :

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

次のように、Web サーバーによって設定される環境変数を設定することもできます:

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

通常、コマンド ライン スクリプトに引数を渡すには、argv のいずれかを使用します。 グローバル変数または 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 にデータを入力したい場合は、次のようにすることができます:

// 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
     )
*/

特定のスクリプトを実行して $_GET を入力することもできます 上記のスクリプトを変更することなく、コマンドラインから:

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

$_POST でも同じことができることに注意してください そして $_COOKIE


Ubuntu には php-cgi バイナリがないので、次のようにしました:

% 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. Linuxのfindコマンドの25の簡単な例

  2. Linuxmvコマンド

  3. Linuxduコマンド

  1. Linuxipコマンド

  2. Linuxcdコマンド

  3. $_GET パラメータを cron ジョブに渡す

  1. Linuxifconfigコマンド

  2. Linuxタイムコマンド

  3. LinuxでのPingコマンド