求助!关于php urlencode 里的 "+" 号 php 里的 "+" 号 被urlencode 编码后,再用 urldecode 解码,变成了 ' ' ,即空的,也不知道是空格还是空,我看起来像是空格,总之就不是原来的 '+' 号了,我应该怎么解决才能得到原来的 + 号? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 是吗?不要想当然的说echo $s = 'abc+123 xyz';echo '<br />';echo $s = urlencode($s);echo '<br />';echo urldecode($s);abc+123 xyzabc%2B123+xyzabc+123 xyz 我测试也出现这种情况:#发送页面$param = "1+1";echo urlencode($param)."<br>";#1%2B1header("Location:./test17.php/?can=".urlencode($param));#http://path/test/test_csdn/test17.php/?can=1%2B1#接收页面if(isset($_GET['can'])){ echo urldecode($_GET['can']);}#1 1 web 服务器会默认做一次 url 解码传递到 php 时,已经变成 ?can=1+1 了如果你再做一次 url 解码,当然就不对了! 果然:#接收页面if(isset($_GET['can'])){ echo urldecode($_GET['can']); #1 1 echo $_GET['can']; #1+1}理解了,感谢!!! 你意思是 不用 urldecode 解码? 那被 urlencode 的就是一串 %号 和数字组成的乱码!! 我刚才试了下,好像是的,我晕了那 urldecode 有啥J8用? 可是为啥对中文的情况下,如果不用 urlencode 再 urldecode 就可能有乱码? 经测试,中文也正常啊:#发送页面$param = "abc+速度";echo urlencode($param)."<br>";#abc%2B速度header("Location:./test17.php/?can=".urlencode($param));#接收页面if(isset($_GET['can'])){ #web 服务器会默认做一次 url 解码 echo urldecode($_GET['can']); #abc 速度 echo $_GET['can']; #abc+速度} 那这个urldecode 函数有啥用? 那看你的需求了,现在你是发送和接收一起做,所以不考虑。但是,如果只给你一个借口或直接给你一个网址呢?如:http://localhost/path/test/test_csdn/test17.php/?can=abc%2B%E9%80%9F%E5%BA%A6这时就需要urldecode()解码了 什么是SSL???怎么实现SSL加密??? PHPMyAdmin中看到3个root? phpmyadmin 为各位PHP爱好者提供一个交流群 问一个关于URL截取的问题... checked 问题? 关于发信的问题(用的mail) 当我访问http://127.0.0.1/phpinfo.php 时 正在学XML,但看见书上说IE5都不支持标准的XML1。0是不是啊 新手。我该怎么写呢?判断语句。大神们帮帮忙~ 为什么我的表单只能提交一次 这样一个查询的PHP语句该怎么写出来?输出每天的日期和记录数
echo '<br />';
echo $s = urlencode($s);
echo '<br />';
echo urldecode($s);
abc+123 xyz
abc%2B123+xyz
abc+123 xyz
$param = "1+1";
echo urlencode($param)."<br>";
#1%2B1
header("Location:./test17.php/?can=".urlencode($param));
#http://path/test/test_csdn/test17.php/?can=1%2B1#接收页面
if(isset($_GET['can'])){
echo urldecode($_GET['can']);
}
#1 1
传递到 php 时,已经变成 ?can=1+1 了
如果你再做一次 url 解码,当然就不对了!
if(isset($_GET['can'])){
echo urldecode($_GET['can']); #1 1
echo $_GET['can']; #1+1
}理解了,感谢!!!
你意思是 不用 urldecode 解码? 那被 urlencode 的就是一串 %号 和数字组成的乱码!!
$param = "abc+速度";
echo urlencode($param)."<br>";
#abc%2B速度
header("Location:./test17.php/?can=".urlencode($param));#接收页面
if(isset($_GET['can'])){
#web 服务器会默认做一次 url 解码
echo urldecode($_GET['can']); #abc 速度
echo $_GET['can']; #abc+速度
}
http://localhost/path/test/test_csdn/test17.php/?can=abc%2B%E9%80%9F%E5%BA%A6
这时就需要urldecode()解码了