-
深入解析PHP垃圾回收机制对内存泄露的处理
本文为大家深入解析了PHP垃圾回收机制对内存泄露的处理方法,感兴趣的同学参考下。 上次说到了refcount和is_ref,这里来说说内存泄露的情况 $a = array(1, 2, &$a); unset($a); 在老的PHP版本中,这里就会出现内存泄露,分析如下: 执行第一行,可以知道$a和$a[2]指向的zval refcount=2,is_ref=1 然后执行第二行,$a将会从符号表中被删除,同时指向的zval的refcount--,此时refcount=1,因为refcount!=0,故此zval不会被当做垃圾回收,但是此时我们却失去了$a[2]指向这个zval的入口,因此这个zval成了一块内存垃圾 同样的道理可以发生在类内部引用里,例如 $a = new Man(); $a->self = &$a; unset($a); 那么如何解决这种问题呢,新的GC机制采用了一个算法来解决这个问题 PHP有一个root buffer用来存储zval的节点信息,当root...
PHP 2014-12-15 13:21:08 -
PHP 5.4 你必须要知道的问题
本文为大家整理了PHP 5.4 你必须要知道的问题,感兴趣的同学参考下. PHP 5.4.0 性能大幅提升, 修复超过100个bug. 废除了register_globals, magic_quotes以及安全模式 PHP 5.4来了,这是自5.3后的又一次主版本升级。此次升级改动较为显著,删除了一些过气儿的函数,带来了高达20%的速度提升和更少的内存使用...
PHP 2014-12-15 13:15:10 -
PHP 正则判断中文UTF-8或GBK的示例讲解
本文为大家讲解的是PHP 正则判断中文UTF-8或GBK的示例讲解,感兴趣的同学参考下. UTF-8匹配: 在javascript中,要判断字符串是中文是很简单的。比如: var str = "php编程"; if (/^[u4e00-u9fa5]+$/.test(str)) { alert("该字符串全部是中文"); }else{ alert("该字符串不全部是中文"); } //php中,是用x表示十六进制数据的...
PHP 2014-12-15 12:30:12 -
php curl 登录163邮箱并抓取邮箱好友列表的代码
本文是一个php通过 curl 登录163邮箱并抓取邮箱好友列表的代码示例,感兴趣的同学参考下。 CURL技术说白了就是模拟浏览器的动作实现页面抓取或表单提交,通过此技术可以实现许多有去的功能...
PHP 2014-12-15 12:18:22 -
php使用str_pad函数实现卡号不足位数自动补0的方法
本文为大家讲解的是示例是php使用str_pad函数实现卡号不足位数自动补0的方法,感兴趣的同学参考下。 自动补足空白位数在php中str_pad函数可以帮我们实现哦,str_pad() 函数把字符串填充为指定的长度...
PHP 2014-12-15 11:54:10 -
PHP中static关键字原理及使用方法
本文为大家讲解的是PHP中static关键字原理及使用方法,感兴趣的同学参考下。 看PHP手册的时候发现了下面这样一段代码: <?php function Test() { static $count = 0; $count++; echo $count; if ($count < 10) { Test(); } $count--; } ?> 执行结果如下: 这是一个递归的函数,声明的静态变量count记录次数,输出1~10...
PHP 2014-12-15 11:45:07 -
使用php+apc实现上传进度条在IE7下不显示的问题解决方法
本文为大家讲解的是使用php+apc实现上传进度条且在IE7下不显示的问题解决方法。需要的朋友参考下 今天整理以前写过的关于上传文件,并显示进度条的程序代码,对该代码进行优化整理...
PHP 2014-12-15 11:36:38 -
php数组相加 array(“a”)+array(“b”)结果还是array(“a”)
本文是一个示例:php数组相加 array(“a”)+array(“b”)结果还是array(“a”),感兴趣的同学参考下。 同一个数组里面如果有相同的键名,则前面一个键名的值将会被覆盖(overwritten) 在网上看到一道题: array("a")+array("b")的结果是___ A.array("a","b") B.array("b","a") C.array("b") D.array("a") 答案:D php两个数组相加,为什么结果还是不变呢? 因为,它们等效于array("0″=>"a")+array("0″=>"b"),它们的键名相同,前者不能被后者覆盖,如果是array("0&Prim...
PHP 2014-12-15 11:24:06 -
PHP利用func_get_args和func_num_args函数实现函数重载的示例
本文为大家讲解的是PHP利用func_get_args和func_num_args函数实现函数重载的示例,感兴趣同学参考下。 学习php的朋友都知道php本身是没有函数重载这一说的,更没说像java,c那样使用方法,但如果我们深入了解一下会发现可以在php中使用func_get_args()和func_num_args()函数实现函数重载,下面来举两个函数重载例子.这两个函数实现函数的重载. 1、默认参数,如果一个函数里面,这不是必须参数,而添加相应的默认值,就可以完成相应的功能,代码如下: function overloadFun($param1, $param2 = '1',$param3 = true) { // do something } 利用函数func_get_args()和call_user_func_array(),PHP代码如下: function rewrite() { $...
PHP 2014-12-15 11:21:06 -
微软:Win10(WP10)输入法,我们正在努力
站长搜索(www.adminso.com):微软:Win10(WP10)输入法,我们正在努力 WP之家讯 Windows Phone系统一向以丝滑般的流畅体验见长,其自带输入法也不例外,但体验过其它平台输入法的Windows Phone用户却觉得目前WP8.1的输入法虽然流畅,但是在功能方面仍然有提升空间。在当前版本中,应该不会再有任何重大提升,但未来的Win10 for Phone(WP10)却将有较大变化,站长搜索作为微软合作伙伴,受邀参加了2014微软Fans Open Day,微软在活动中展示了关于下一代Windows Phone输入法的相关概念,现在就一起来看看未来Win10 for Phone(WP10)的输入法会什么样...
业界动态 2014-12-15 11:15:08 -
php的POSIX 函数以及进程测试的使用说明
本文为大家讲解的是php的POSIX 函数以及进程测试的使用说明,感兴趣的同学参考下。 <?php echo posix_getpid(); //8805 sleep(10); ?> 再用 #ps -ax 这个时候如果多开开个浏览器请求,就会发现Apache自动增加了几个新的进程 我们发现并非一直请求同一个进程 重启apache # /usr/local/apache2/bin/apachectl restart 我们发现Apache又恢复到默认进程数...
PHP 2014-12-15 10:54:20 -
细谈php中SQL注入攻击与XSS攻击
本文为大家讲解的是php中SQL注入攻击与XSS攻击方法,感兴趣的同学参考下。 通常在编程中程序员要考虑的问题不仅是代码效率与代码复用性,而且还要考虑一些安全问题 例如: SQL注入攻击 XSS攻击 任意执行代码 文件包含以及CSRF. } 关于SQL攻击有很多文章还有各种防注入脚本,但是都不能解决SQL注入的根本问题 见代码: <?php mysql_connect("localhost","root","123456")or die("数据库连接失败!"); mysql_select_db("test1"); $user=$_post['uid']; $pwd=$_POST['pass']; if(mysql_query("SELECT * from where admin = `username`='$user' or `password`...
PHP 2014-12-15 10:51:06