客户端用Javascript的escape编码之后,php用什么才能解出来?rawurldecode好像不管用

GaoXX 2005-08-30 09:12:05
RT
...全文
407 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
huanxiong0101 2006-02-28
  • 打赏
  • 举报
回复
更正znjgress(潇湘剑客)的escape函数
您的escape函数会使某些字比如 ‘璘’ ‘昉’ 等 无法显示

function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
//$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
$ar[$k] = "%u".bin2hex(iconv("GBK","UCS-2",$v));//这里更正
}
return join("",$ar);
}
todayisbest 2005-12-26
  • 打赏
  • 举报
回复
厉害
peterdoo 2005-10-07
  • 打赏
  • 举报
回复
mark
indexroot 2005-10-06
  • 打赏
  • 举报
回复
很好用,UP
faisun 2005-09-26
  • 打赏
  • 举报
回复
收藏楼上的
尚和空四 2005-09-26
  • 打赏
  • 举报
回复
rawurlencode是按字节进行处理的,并不管当前的文字编码是什么
而js的unescape是按unicode编码进行的
所以你并不能得到正确的资料,除非rawurlencode的参数串为unicode编码的

因此你需要用php编程模拟js的动作

function escape($str) {
preg_match_all("/[\x80-\xff].|[\x01-\x7f]+/",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(ord($v[0]) < 128)
$ar[$k] = rawurlencode($v);
else
$ar[$k] = "%u".bin2hex(iconv("GB2312","UCS-2",$v));
}
return join("",$ar);
}

function unescape($str) {
$str = rawurldecode($str);
preg_match_all("/%u.{4}|&#x.{4};|&#\d+;|.+/U",$str,$r);
$ar = $r[0];
foreach($ar as $k=>$v) {
if(substr($v,0,2) == "%u")
$ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,-4)));
elseif(substr($v,0,3) == "&#x")
$ar[$k] = iconv("UCS-2","GBK",pack("H4",substr($v,3,-1)));
elseif(substr($v,0,2) == "&#") {
$ar[$k] = iconv("UCS-2","GBK",pack("n",substr($v,2,-1)));
}
}
return join("",$ar);
}
尚和空四 2005-09-26
  • 打赏
  • 举报
回复
escape(strURLRoot + "/" + FileName)
##KodExplorer (http://kalcaddle.com/) ###ver2.61(2014.7.12) `商业版授权请联系:kalcaddle#qq.com` #### 1.是什么: - Kodexplorer为千帆网络工作室开发的一款服务器文件管理程序。 - 完美取代FTP管理:可用于服务器文件管理,zip压缩 备份还原、支持图片、音乐、视频预览、office、pdf等格式在线预览。文件夹拖拽上传……。 - 在线编程:支持几乎所有编程语言的在线编辑(高亮,多光标编辑.堪比本地的sublime) - 极佳的操作体验:及其便捷的快捷键支持,让你拥有本地化的体验 - 中文等多语言支持:中文编码全面兼容,文件编辑自动适配。 - 超快的速度:全面采用Ajax+Json进行数据通信,毫秒级的响应速度; - 全平台兼容性:Win Linux Mac (Apache、Nginx、IIS) #### 2.使用场景: - 取代FTP,服务端、客户端软件等复杂的安装配置。kod可以一键安装随处使用. - 你可以用它来管理你的服务器(备份,在线压缩,版本发布....) - 你可以把他当做管理linux的一个操作系统界面 - 可以用来作为私有云存储系统,存储你的文件... - 当然你也可以用来分享文件 - Web IDE / browser code editor awesomeness - 更多场景等你来挖掘!…… #### 3.使用说明 管理员: admin/admin 普通用户:demo/demo 游客用户:guest/guest [如何使用] 下载程序,压上传到你的服务器路径下,data目录设置777权限。访问体验超便捷的服务吧! (data目录没有写权限会导致配置修改不能保存、不能新建用户等) [关于上传问题] 程序没有做任何限制,如果需要上传大文件,则修改 php.ini:`upload_max_filesize = 1000M post_max_size = 1000M` [关于压缩问题] 程序不做任何限制,如若失败请设置php内存限制。memory_limit 1000M [关于兼容性] 建议使用chrome firefox ie9+ 体验更完整。ie8以下基本上不做兼容处理。chrome支持文件夹拖拽上传。 [文件打开] office文件在线预览功能,服务器必须在公网(外部能访问该服务器) [忘记密码] 修改data/system/member.php 密码为明文的md5值 例如将admin密码重设为admin 则修改第一行:"name":"admin","password":"21232f297a57a5a743894a0e4a801fc3" ![](https://cloud.githubusercontent.com/assets/3761968/2583304/764f562a-b9cf-11e3-8e59-afdbdffc20eb.png) ###ver2.61 `2014/7/12` ---- ####update: - 实时搜索,根据搜索框内容变化,实时选中匹配到的结果; - 弹出搜索框遍历子文件夹递归搜索 - session key 加入kod_前缀 避免和其他系统key冲突 - 编辑器选中优化 选择鼠标到窗口外事件处理 ####fix bug:(bug决和程序优化) - backspace后退截获浏览器事件,作为后退前一次访问的文件夹; - 搜索首字母不匹配问题 - 弹出层中的弹出层关闭,父窗口失去焦点问题。 - 代码中grunt部分代码拆分开,放到程序外面;提交到git、osc - 桌面:删除alert enter快捷键删除 - install 检测 加入跳过,(只判断用到的函数) 加入多语言 - zip压缩没有权限 提示红色,false 统一查找 - 登录成功后 验证码输错清除 - 非root用户拖拽到文件夹问题 - 非root压问题 不能压 - list oexe 图标问题 - 用户目录不存在判断 - fileCahe 互斥锁 reset 不用 - ie 8~10样式问题调整 ###ver2.6 `2014/7/6` ---- ####update: - 完全性优化;加入严格的校验机制 - 首次运行环境检测[data目录检测,必须的函数支持提示] - 上传已存在处理——创建副本(另外包括粘贴,压) - 选中优化 ctrl选中拖拽 - 键盘快捷键选中文件,多个字符
安优企业建站系统(anyoucms)面向服务对象主要针对 企业,自助建站 简单,安全,个性化,人性化, 数据自由扩展性,无系统漏洞,无模版引擎。数据库预设自由字段,理论支持任何形式的站点。 系统介绍: 短网址 (方便搜索引擎收录) 可完全支持自定义 可以 中文 英文 运行模式 伪静态(伪装成html 等) 动态运行(带有? 号) 动态运行-PHPINFO(不带?号 用/代替) 双模式(伪静态附带自动生成静态 已后台 缓存时间 为准 iis下伪静态组建bug无法使用) 新增内容页 关键字 连接本页面地址 详细内容里面 自动加接接 连接本页面地址 无模版替换 使用纯 php 代码为模版引擎 提高一定速度 系统安全完美杜绝 Sql 注入攻击 url 严格验证各种变异攻击 超级变态的密码加密方式 尽量不要把密码设置过于简单,不要随便透露用户密码给其他人 每次登录都有系统日志记录 让一切都清楚 系统设置里可以开启关闭 日志记录 登录记录不能关闭 支持单点多点登录 系统可以设置 多点登录(只要帐号密码正确就可以登录) 单点登录(每次每个帐号只能登录一次,其他人重复登录将被提下线) 系统管理支持2种权限 超级管理和内容管理 内容管理(只能发表内容) 超级管理(所有权限) 系统设置详: 网站标题: html 的title标签 网站描述: html 的meta name="description" 标签 content的值 网关键字: html 的meta name="keywords" 标签 content的值 网站logo: 网站的标识 强制运行域名:为空不强制 (功能) 多个二级域名 可以强制使用一个域名 其他域名按 301 跳转 到本域名 地图xml: /xml.php?xml=baidu /xml.php?xml=google /xml.php?xml=rss 控制内容的输出条数 所有显示分类将全部读出 7种 url生成模式: 请一次设置好否者影响seo (强制url)根据id生成:::分类an分类id--内容you内容id * 推荐使用模式 设置 (分类url前面) (内容url前面) (强制url)根据时间戳:::1356513768 (强制url)根据时间1:::20121226052248 (强制url)根据时间2:::121226052248 (强制url)拼音首字母:::例如我们--wm (强制url)拼音:::例如十三哥--shisange 根据用户自定义 想什么就是什么 为了避免linux 区分大小写 全部英文将自动转换成小写 全新后台 全新框架 全新 url新模式 安优企业建站系统(anyoucms) 更新日志: 版本:8.2 紧急修复bug清空缓存无法清空的问题 兼容修复urldecode替换成rawurldecode 版本: v8.1 核心优化调整文本缓存 升级请删除原来的 temp 目录 增加安全 版本: v8.0  核心优化 增加采集功能 增加时间镜像功能 版本: v7.9  BUG修复核心优化

21,887

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧