当我使用命令提示符执行php脚本时,需要从Cookie或会话中读取一些值。我怎样才能做到这一点?
如何从Windows命令提示符下访问Cookie或会话值?
Cookies是从用户的Web浏览器发送的。当您从命令行执行php脚本时,没有浏览器可以发送或接收Cookie。没有访问或保存cookie的方法,除了您在命令行中传递的参数外,没有任何内容发送到脚本。
话虽如此,如果您知道某人的PHPSESSID cookie,则可以通过一种方法来读取该人已经访问过的会话。
假设某人已经使用Web浏览器访问了您的脚本,而他们的PHPSESSID为a1b2c3d4,而您想在其会话中执行该脚本。在命令行执行以下命令。
php -r '$_COOKIE["PHPSESSID"] = "a1b2c3d4"; session_start(); require("path_to_php_script.php");'
其中path_to_php_script.php是要执行的php脚本的路径。实际上,如果要执行的php文件本身启动了会话,则不必启动会话。因此,您可能需要实际尝试以下命令:
php -r '$_COOKIE["PHPSESSID"] = "a1b2c3d4"; require("path_to_php_script.php");'
好的,现在让我们说您不想访问某人的会话,而只是想像执行会话一样执行脚本。只需执行上一个命令,然后输入所需的任何sessionid。只要每次调用脚本时都使用相同的PHPSESSID,您的会话就将在两次调用脚本之间保持不变。