您的位置:首页 > 编程语言 > PHP开发

分享一段php代码,用于判断内容是否经过urlencode()编码

2017-08-11 11:52 731 查看
分享一段php代码,用于判断内容是否经过urlencode()编码
/** * 判断内容是否经过urlencode()编码 * [@param](https://my.oschina.net/u/2303379) $str * [@return](https://my.oschina.net/u/556800) bool true已经编码过,false未经过编码 */ function isUrlEncoded($str) { $str = strtoupper($str); $dontNeedEncoding = "AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz0123456789-_."; $encoded = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789"; $needEncode = false; for ($i = 0; $i < strlen($str); $i++) { $c = substr($str, $i, 1); if (strpos($dontNeedEncoding, $c) !== false) {//不需要处理 continue; } if ($c == '%' && ($i + 2) < strlen($str)) { // 判断是否符合urlEncode规范 $c1 = substr($str, ++$i, 1); $c2 = substr($str, ++$i, 1); if (strpos($encoded, $c1) !== false && strpos($encoded, $c2) !== false) { continue; } } // 其他字符,肯定需要urlEncode $needEncode = true; break; } //如果有字符需要进行编码,那这个字符串肯定就是没有经过编码的 return !$needEncode; }

本函数借鉴了某网友发布的java实现方法,在此谢过
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  php urlencode