关于Is it possible to read cookie/session value while executing PHP5 script through command prompt? 我尝试制作一个执行php的bash文件并在此之前设置$ _COOKIE。
我首先在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脚本很旧,无法更改。
答案 0 :(得分: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';"