TEL:400-8793-956
当前位置:程序、服务器

在PHP中使用键处理Cookie

提问者: 近期获赞: 浏览人数: 发布时间:2021-01-23 13:04:02

 问:我有一种情况需要在两个引擎之间传递Cookie:PHP和ASP。

 
ASP正在生成带有密钥的cookie
 
PHP能够看到cookie,并且正在成功读取它。但是,我不确定如何将键和值分开以在表单元素等中使用。
 
示例:假设我的cookie名为“ mycookie1”,其中包含两个键:“ mysource”和“ myid”。mysource的值为“ index.php”,myid的值为“ 12345”
 
当我在PHP中调用Cookie时,它会看到以下内容:“ mysource = index.php&myid = 12345”
 
然后,如何将这些值分成它们自己的变量以在表单元素中使用?值得一提的是,您能告诉我如何在不分配变量的情况下直接拆分这些吗?
 
我尝试过的事情:
 
我尝试了几种不同的方式来收集信息,但是PHP总是会抛出错误。这似乎是由于它在cookie本身中看到的等号引起的。我尝试了以下代码来显示键和值:
 
foreach($ _COOKIE ['mycookie1'] as $ key => $ value){
  echo“ $ key:$ value”;
  }
 
这会引发错误“解析错误:语法错误,意外的T_VARIABLE,预期为','或';' ”
 
 
好的,所以它不喜欢这样阅读。
 
我已经尝试了以下各种变体,并且无论我怎么写,都得到大致相同的erorr:
 
$ myval = “” $ _COOKIE ['mycookie1']“ ;
 
这会吐出错误“解析错误:语法错误,意外的T_ENCAPSED_AND_WHITESPACE,期望为T_STRING或T_VARIABLE或T_NUM_STRING”
 
 
实际上,我从未遇到过这样的情况,即需要在PHP引擎中使用键控cookie。我希望其他的spiceworks用户对此有一些建议或经验。
 
答:看来我们已经弄清楚了。
 
首先,我将变量写错了。这是正确的方法:
 
$ myval = $ _ COOKIE [ “ mycookie1” ];
 
 
接下来,我们需要将字符串拆分,如下所示:
$ myarray = explode(“ &”,$ myval) ;
 
现在,我们来寻找等号的位置
$ pos = stripos($ myarray [0],'=');
 
由于PHP使用零作为起始数字,因此我们需要在$ pos变量中加1,如下所示:
$ pos = $ pos + 1;
 
现在,我们使用substr函数删除要查找的值之前的所有内容,并将其分配给它自己的$ mysource变量。
$ mysource = substr($ myarray [0],$ pos);
 
现在,我们可以简单地冲洗并重复每个数组项,如下所示:
 
$ pos = stripos($ myarray [1],'=');
$ pos = $ pos + 1;
$ myid = substr($ myarray [1],$ pos);
 
现在,只需在表单元素中需要的任何位置使用$ mysource和$ myid即可。
 
不简单...但是效果很好。
上一篇: crontab运行php脚本时出现问题
下一篇: 所有访客的WordPress登录