来自命令提示符的PHP脚本 - 是否可以设置\ read cookies?

时间:2014-07-23 15:47:44

标签: php cookies terminal setcookie

我有一个简单的php页面,我试图运行这个php脚本来自终端控制台(ssh):

php /home/account/domains/domain.com/public_html/script.php

现在,我可以运行脚本,事实是,如果我从控制台运行php脚本,设置\读取cookie不起作用,如果我正在运行它从浏览器页面,一切正常(读写cookie ...)

所以我的问题是,我可以从终端运行这个脚本(就像上面那样),并以某种方式保存cookie吗?

我的php scrpit很简单:

setcookie("cookie", "cookie", time()+30);
if (!isset($_COOKIE["cookie"])){
echo "New Cookie is set!";
}else{
echo "The Cookie already set!";
}

非常感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

Cookie仅存在于浏览器中。从命令行运行脚本时不涉及浏览器,因此无法存储这些cookie。

如果需要跨命令行脚本调用存储数据,则需要读取并将其写入文件。一种简单的方法可能是:

// At the start of the script...
$PERSIST = unserialize(file_get_contents("myscript.cache")) ?: array();

// Read data from there...
print $PERSIST["blah"];
// Write some
$PERSIST["foo"] = "stuff";

// At the end of the script, save it back
file_put_contents("myscript.cache", serialize($PERSIST));

答案 1 :(得分:-1)

如果你愿意运行一些exec()函数,你可以保存cookie和东西 - 见

How to get past the login page with Wget?