【问题标题】:Passing variables to bash and php将变量传递给 bash 和 php
【发布时间】:2014-08-05 00:34:27
【问题描述】:

关于Is it possible to read cookie/session value while executing PHP5 script through command prompt? 我试图制作一个执行 php 并在此之前设置 $_COOKIE 的 bash 文件。

我首先尝试在 Windows 环境中创建简单的批处理文件:

php -r "$_COOKIE['PHPSESSID']='a095y187'; session_start(); $id_client=%1; $id_supplier=%2; $_COOKIE['id_chosen_client_auto']=$id_client; $_COOKIE['id_chosen_client']=$id_client; require 'manual_automap.php';"

按照我的预期工作,$_COOKIE 已设置,$id_client 和 $id 供应商在 bat 文件后的第一个和第二个参数中设置:

manual_automap.bat 1 1

现在我尝试在 Linux 环境中迁移它,并尝试将 %1 和 %2 更改为 $1 和 $2,但似乎这样不起作用。变量未设置:

php -r "$_COOKIE['PHPSESSID']='a095y187'; session_start(); $id_client=$1; $id_supplier=$2; $_COOKIE['id_chosen_client_auto']=$id_client; $_COOKIE['id_chosen_client']=$id_client; require 'manual_automap.php';"

我在这里错过了什么?

我希望在运行时manual_automap.sh 1 2 $id_client 应该是 1 而 $id_supplier 应该是 2

谢谢。

PS:我运行的php脚本很旧,无法更改

【问题讨论】:

标签: php bash batch-file


【解决方案1】:

您应该转义所有 $ 符号($1 和 $2 除外)。

php -r "\$_COOKIE['PHPSESSID']='a095y187'; session_start(); \$id_client=$1; \$id_supplier=$2; \$_COOKIE['id_chosen_client_auto']=\$id_client; \$_COOKIE['id_chosen_client']=\$id_client; require 'manual_automap.php';"

【讨论】:

    猜你喜欢
    • 2013-10-27
    • 1970-01-01
    • 2017-02-22
    • 1970-01-01
    • 2020-01-24
    • 2013-04-20
    • 2018-10-22
    相关资源
    最近更新 更多