设置cookie而不转义特殊字符

问题描述 投票:0回答:2

我发现 setcookie() 函数会转义特殊字符,例如引号。我通过清除那些垃圾符号解决了这个问题:

$new_avt = str_replace("\'","",$_COOKIE['avatar']);
$new_avt = str_replace('alt=','',$new_avt);

但我发现这个解决方案很难看。此外,正如您所看到的,我必须删除“alt”属性,因为我无法正确删除其中的转义符号。我想到的唯一其他解决方案是将编码字符串写入 cookie,然后在获取 cookie 时对其进行解码。这个解决方案会比 str_replace() 更快吗?有没有更好的方法?

感谢您的宝贵时间。

php cookies setcookie
2个回答
0
投票

如果您在 cookie 中存储大量数据,那么您可能需要考虑使用会话。这将数据存储在服务器上,而不是在每次请求时将数据发送到客户端或从客户端发送数据。任何可以序列化的变量都可以存储在会话变量中。请参阅 http://www.php.net/manual/en/intro.session.php


0
投票

只需使用 php 函数

stripslashes
即可摆脱不需要的转义。

$new_avt = stripslashes( $_COOKIE['avatar'] );

然后你应该得到与

setcookie()
写入 cookie 中完全相同的字符串。

© www.soinside.com 2019 - 2024. All rights reserved.