1

我有一个定义如下的字符串:

DEFINE('IMAGES_DIR',"/portal/images/");

在我将它放在 cookie 中后,它的内容变为

%2Fportal%2Fimages%2F

我需要返回的字符串如下:

/portal/images/
4

2 回答 2

1

我有点结合这里提到的两个答案。

第一

您描述的是默认行为,PHP会自动将其解码为其原始值,您无需这样做urldecode($_COOKIE['name']);

第二

您可以使用setrawcookie()防止自动 url 编码

文档

请注意,当您发送 cookie 时,cookie 的值部分会自动进行 urlencoded,当接收到时,它会自动解码并分配给与 cookie 名称同名的变量。如果您不想要这个,如果您使用的是 PHP 5,则可以使用 setrawcookie() 代替。

于 2013-08-09T23:17:30.160 回答
0

urldecode获取 cookie 值时使用:

echo urldecode('%2Fportal%2Fimages%2F');

或者

//for cookie
echo urldecode($_COOKIE['IMAGES_DIR']);

//for your example above with the contant
echo urldecode(IMAGES_DIR);
于 2013-08-09T23:12:04.013 回答