PHP下escape解码函数的实现方法
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);
}
function unescape($str){
$ret = '';
$len = strlen($str);
for ($i = 0; $i < $len; $i++){
if ($str[$i] == '%' && $str[$i+1] == 'u'){
$val = hexdec(substr($str, $i+2, 4));
if ($val < 0x7f) $ret .= chr($val);
else if($val < 0x800) $ret .= chr(0xc0|($val>>6)).chr(0x80|($val&0x3f));
else $ret .= chr(0xe0|($val>>12)).chr(0x80|(($val>>6)&0x3f)).chr(0x80|($val&0x3f));
$i += 5;
}
else if ($str[$i] == '%'){
$ret .= urldecode(substr($str, $i, 3));
$i += 2;
}
else $ret .= $str[$i];
}
return $ret;
}
相关推荐
-
PHP图片处理之使用imagecopyresampled函数实现图片缩放例子
网站优化不能只定在代码上,内容也是网站最需要优化的对象之一,而图像又是网站中最主要的内容.图像的优化最需要处理的就是将所有上传到网站中的大图片自动缩放称小图(在网页中大小够用就行),以减少N倍的存储空间,并提高下载浏览的速度.所以图片缩放成一个动态网站必须要处理的任务,经常和文件上传绑定在一起工作,能在上传图片的同时就调整其大小.当然有时也需要单独处理图片缩放,例如在做图片列表时,如果直接用大图而在显示时才将其缩放成小图,这样做不仅下载速度会变慢,也会降低页面响应时间.通常遇到这样的应用都是在上
-
php实现的简单日志写入函数
本文实例讲述了php实现的简单日志写入函数.分享给大家供大家参考.具体实现方法如下: function log( $logthis ){ file_put_contents('logfile.log', date("Y-m-d H:i:s"). " " . $logthis. "\r\n", FILE_APPEND | LOCK_EX); } // use \r\n for new line on windows, just \n on linu
-
PHP中strnatcmp()函数“自然排序算法”进行字符串比较用法分析(对比strcmp函数)
本文实例讲述了PHP中strnatcmp()函数"自然排序算法"进行字符串比较用法.分享给大家供大家参考,具体如下: PHP中strnatcmp()函数使用"自然"算法来比较两个字符串(区分大小写),通常在自然算法中,数字 2 小于数字 10.而在计算机排序中,10 小于 2,这是因为 10 中的第一个数字小于 2. strnatcmp()函数的定义如下: strnatcmp(string1,string2) 参数说明: string1 必需.规定要比较的第一个字
-
PHP实现数字补零功能的2个函数介绍
在PHP中至少有两个函数能够帮助我们快速实现数字补零:首先是PHP str_pad函数: 复制代码 代码如下: #str_pad - 使用另一个字符串填充字符串为指定长度 顾名思义这个函数是针对字符串,对指定的字符串填补任何其它的字符串str_pad参数说明: 复制代码 代码如下: string str_pad ( string $input , int $pad_length [, string $pad_string = " " [, int $pad_type = STR_PAD
-
PHP实现通用alert函数的方法
本文实例讲述了PHP实现通用alert函数的方法.分享给大家供大家参考.具体如下: 函数:通用提示 参数:提示訊息,類型或網址,窗口名或函數名,延时毫秒 Alert("","function","close2",300); 代码如下: function Alert($Str,$Typ="back",$TopWindow="",$Tim=100){ echo "<script>"
-
PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
php屏蔽电话号码中间四位: 复制代码 代码如下: Method 1: function hidtel($phone){ $IsWhat = preg_match('/(0[0-9]{2,3}[\-]?[2-9][0-9]{6,7}[\-]?[0-9]?)/i',$phone); //固定电话 if($IsWhat == 1){ return preg_replace('/(0[0-9]{2,3}[\-]?[2-9])[0-9]{3,4}([0-9]{3}[\-]
-
php不用内置函数对数组排序的两个算法代码
一朋友找工作遇到的试题,备注一下. 极有可能今后我也会遇到的. 问题:php不用内置函数对数组排序,可能是降序或者升序 第一种方法:传说中的冒泡法 复制代码 代码如下: function arraysort($data, $order = 'asc') { //asc升序 desc降序 $temp = array (); $count = count ( $data ); if ($count <= 0) return false; //传入的数据不正确 if ($order == 'asc')
-
通过PHP的内置函数,通过DES算法对数据加密和解密
由于项目的需要,要写一个能生成"授权码"的类(授权码主要包含项目使用的到期时间),生成的授权码将会写入到一个文件当中,每当项目运行的时候,会自动读取出文件中的密文,然后使用唯一的"密钥"来调用某个函数,对密文进行解密,从中解读出项目的使用到期时间. 之前,自己有先试着写了下,主要是base64+md5+反转字符串.算法太过简单,很容易被破解,而且也没有能过做到"密钥"在加解密中的重要性,故而舍之. 后来,查找了相关资料,发现,原来PHP中内置了一
-
PHP实现生成透明背景的PNG缩略图函数分享
之前在WEB开发笔记写过一个PHP生成缩略图的函数,虽然那个函数能够生成缩略图,但是有一定的缺陷,在生成PNG缩略图的时候,背景是黑色,今天又写了一个函数来弥补一下.代码很简单,就是imagealphablending($thumb,false);与imagesavealpha($thumb,true);很重要.主要就是把PNG的alpha值保存,不要丢失而已. 函数如下: <?PHP /* *$sourePic:原图路径 * $smallFileName:小图名称 * $width:小图宽 *
-
PHP 冒泡排序 二分查找 顺序查找 二维数组排序算法函数的详解
数据结构很重要,算法+数据结构+文档=程序使用PHP描述冒泡排序算法,对象可以是一个数组 复制代码 代码如下: //冒泡排序(数组排序)function bubble_sort($array) {$count = count($array);if ($count <= 0)return false;for($i=0; $i<$count; $i++){for($j=$count-1; $j>$i; $j–){if ($array[$j] < $array[$j-1]){$tmp =
-
PHP简单实现欧拉函数Euler功能示例
本文实例讲述了PHP简单实现欧拉函数Euler功能.分享给大家供大家参考,具体如下: 欧拉函数ph(n)的意思是所有小于n且与n互质的个数. 比如说ph(10) = 4{1,3,7,9与10互质} 代码如下: <?php function Euler($x) { $res = $x; $now = 2; while ($x > 1) { if ($x % $now == 0) { $res /= $now; $res *= ($now - 1); while ($x % $now == 0)
随机推荐
- js 弹出菜单/窗口效果
- 利用JS轻松实现获取表单数据
- function, new function, new Function之间的区别
- VMWare Workation双网卡配置IP地址的图文教程
- PHP中模拟链表和链表的基本操作示例
- 详解IOS点击空白处隐藏键盘的几种方法介绍
- 微信小程序中post方法与get方法的封装
- XSL简明教程(5)XSL的索引
- JavaEE简介_动力节点Java学院整理
- Jquery获取第一个子元素简单实例
- JS实现的添加弹出层并完成锁屏操作示例
- “内存不足”的九大原因及解决
- Java 内省(Introspector)深入理解
- 利用yahoo汇率接口实现实时汇率转换示例 汇率转换器
- 用php实现的下载css文件中的图片的代码
- xinwen365.com为您提供100M免费空间服务
- 微信小程序实现给嵌套template模板传递数据的方式总结
- python机器学习库scikit-learn:SVR的基本应用
- python实现关闭第三方窗口的方法
- Vue触发隐藏input file的方法实例详解