在不转义特殊字符的情况下设置 cookie


Set cookie without escaping special characters

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

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

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

谢谢你的时间。

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