随笔分类 -  PHP

PHP相关知识、代码
logrotate机制与原理[转载]
摘要:http://blog.lightxue.com/how-logrotate-works/日志实在是太有用了,它记录了程序运行时各种信息。通过日志可以分析用户行为,记录运行轨迹,查找程序问题。可惜磁盘的空间是有限的,就像飞机里的黑匣子,记录的信息再重要也只能记录最后一段时间发生的事。为了节省空间和整... 阅读全文

posted @ 2015-09-06 10:34 出发的兰彻 阅读(18562) 评论(4) 推荐(1)

使用git提交github代码
摘要:新的项目的提交touch README.mdgit initgit add README.mdgit commit -m "first commit"git remote add origin https://github.com/sailrancho/test.gitgit push -u ori... 阅读全文

posted @ 2014-06-27 14:54 出发的兰彻 阅读(200) 评论(0) 推荐(0)

PHP 文件迭代器
摘要:使用了SPL的 迭代器, 可以直接对打开的文件进行foreach读取, 类的构造如下class fileIterator implements Iterator{ private $fp; private $line_num; private $line; public... 阅读全文

posted @ 2014-06-27 12:07 出发的兰彻 阅读(545) 评论(0) 推荐(0)

斐波那契数列PHP非递归数组实现
摘要:概念: 斐波那契数列即表达式为 a(n) = a(n-1)+a(n-2) 其中 a1 =0 a2 = 1 的数列代码实现功能: 该类实现初始化给出n,通过调用getValue函数得出a(n)的值=0) { $this->num_count = $num_count; } } public function getValue() { for($i=2; $inum_count; $i++) { $this->Fbnq_arr[$i] = $this... 阅读全文

posted @ 2014-03-08 16:38 出发的兰彻 阅读(778) 评论(0) 推荐(0)

Postfix性能测试(PHP版)
摘要:Postfix的性能压测(PHP版)发送测试:分别使用PHP Mail()函数和PHPMailler smtp协议发送邮件, 推送速率是指 发送个数/PHP程序运行时间, 发送速率是指 发送个数/(PHP推送时间+postfix处理积压的时间)发送方式发送量(个数*进程数)推送速率(封/s)发送速率(封/s)是否积压local10000*161.5650955861.56509558否local5000*1130.439319642.50115919积压smtp10000*121.7911544421.79115444否smtp5000*241.8683149441.86831494否smtp 阅读全文

posted @ 2014-01-06 16:56 出发的兰彻 阅读(1299) 评论(0) 推荐(0)

PHP 堆排序实现
摘要:在《算法: C语言实现》上看到的写法,很简洁,用PHP实现一把。=1;$i--) { fixDown($arr, $i, $len); } while($len>1) { exch($arr[1], $arr[$len]); fixDown($arr, 1, --$len); } array_shift($arr);}$arr = array(4,6,4,9,2,3);headSort($arr); 阅读全文

posted @ 2013-11-30 11:51 出发的兰彻 阅读(372) 评论(1) 推荐(0)

php 数组排序 sort asort ksort
摘要:'sdf', 'r'=>'sdf', 'a'=> 'eee');//sort($arr); // 对数组的值进行重排, 删除之前的键值, 变为索引数组//asort($arr); // 对数组按照值进行重排,并保持索引关系,索引数组和关联数组均适用ksort($arr); // 对数组按照键值进行重排,并保持索引关系,索引数组和关联数组均适用// 对应逆序还有rsort arsort krsort// 使用函数比较有usort uksort uasort 第二个参数为比较的函数 需要在第一个参数相等 小 阅读全文

posted @ 2013-11-10 18:21 出发的兰彻 阅读(323) 评论(0) 推荐(0)

PHP strrpos strpos strstr strrchr 区别
摘要:1. strstrstringstrstr(string$haystack,mixed$needle[,bool$before_needle= false] )$needle 为字符串,如果不是字符串,那么转化为整型,使用该整型对应的字符。返回 该字符(串)首次出现到字符串尾部分, 包括该字符(串)。2. strrchrstringstrrchr(string$haystack,mixed$needle)$needle为字符, 如果是字符串,使用字符串的首字符作为匹配字符(区别于其他几个函数对字符串情况的处理), 如果不是字符也不是字符串,则转化为整型,使用该整型对应的字符。返回该字符最后一次 阅读全文

posted @ 2013-11-10 15:59 出发的兰彻 阅读(1410) 评论(0) 推荐(0)

PHP正则匹配邮件地址、URL
摘要:匹配邮件#^[A-Za-z0-9]+[\w\.-]*@[A-Za-z0-9]+[A-Za-z0-9\.-]*[A-Za-z0-9]$#注意1. \w 表示的是 [A-Za-z0-9_] 包括下划线 2. 邮件@后的域名不能含有下划线 _ 但是可以有-<?php$email = 'sailrancho@qq_mail.com';function isEmail($email) { $preg = '#^[A-Za-z0-9]+[A-Za-z0-9\.-_]*@[A-Za-z0-9]+[A-Za-z0-9\.-]*[A-Za-z0-9]$#'; return 阅读全文

posted @ 2013-11-09 13:10 出发的兰彻 阅读(853) 评论(0) 推荐(0)

PHP使用libevent实现高性能httpServer
摘要:今天发现php也有一个libevent的扩展,安装后尝试下了一个webserver(httpserver), 发现性能还不错,逻辑很简单,每秒响应速度1800~4000次/s代码如下<?php$socket = stream_socket_server ('tcp://0.0.0.0:8888', ... 阅读全文

posted @ 2013-10-31 20:18 出发的兰彻 阅读(1016) 评论(0) 推荐(0)

PHP GC垃圾回收机制之引用变量回收周期疑问
摘要:普通的引用变量的销毁大家都知道, 当unset的时候如果refcount = 0 则认为无用, 销毁。但是手册中提到一点会有递归引用的问题,很是奇葩代码如下 1 [1] => Array ( [0] => 1 [1] => Array *RECURSION* ))*/这个时候 $arr[1] 递归的引用了$arr , 虽然没有意义,但是按照原来的判断refcount为0的方式会出现问题,因为当unset($arr)时, refcount=1 ,此时$arr成为一个没有任何变量指向的垃圾数据。手册中提到的方法是当一个变... 阅读全文

posted @ 2013-10-29 17:20 出发的兰彻 阅读(465) 评论(0) 推荐(0)

PHP快速排序及其时间复杂度
摘要:$r) return; $tmp_l = $l; $tmp_r = $r; $privot = $arr[$r]; while($tmp_l $tmp_r; 因为这里使用不是交换的方式,而是直接使用直接赋值的形式。 $arr[$tmp_r] = $arr[$tmp_l]; while($arr[$tmp_r] >= $privot && $tmp_l<$tmp_r) --$tmp_r; // 没有=等于的判断 会出现死循环,没有详细考究原因。 $arr[$tmp_l] = $arr[$tmp_r]; } ... 阅读全文

posted @ 2013-10-27 14:17 出发的兰彻 阅读(933) 评论(0) 推荐(0)

PHP读某一个目录下所有文件和文件夹
摘要:废话少说了 直接上代码<?phpfunction read_dir($dir) { if (!is_dir($dir)) { echo 'not a dir '; return; } if ($dir_handler = opendir($dir)) { while($file = readDir($dir_handler)) { if ($file == '..' || $file == '.') continue; echo $file; echo is_... 阅读全文

posted @ 2013-10-27 12:05 出发的兰彻 阅读(324) 评论(0) 推荐(0)

PHP获得两个绝对路径的相对路径
摘要:周末在家看面试题,没事儿写了个。题目:写一个函数,算出两个文件的相对路径 如 $a = '/a/b/c/d/e.php'; $b = '/a/b/12/34/c.php';计算出 $b 相对于 $a 的相对路径应该是 ../../c/d代码如下<?php$a = '/c/d/e.php';$b = '/a/b/13/34/j/c.php';$b = '/a/b/c/d/e.php';$a = '/a/b/12/34/c.php';function getRelativeDir($a, $b) 阅读全文

posted @ 2013-10-27 11:40 出发的兰彻 阅读(532) 评论(0) 推荐(0)

PHP使用Mysql事务
摘要:摘抄至http://www.cnblogs.com/dreamhome/archive/2012/10/22/2733715.html 阅读全文

posted @ 2013-10-24 18:38 出发的兰彻 阅读(423) 评论(0) 推荐(0)

PHP使用session_set_save_handler陷阱
摘要:陷阱如下当脚本使用了session_set_save_handler 来重定向 session后,使用session_destroy后再使用session_start()重新开启session会报错代码如下,function.session-start]: Failed to initialize storage module: user (path: /var/lib/php/session) in /home/user/site/session.php on line 39屏蔽session_set_save_handler('open', 'close', 阅读全文

posted @ 2013-10-23 13:46 出发的兰彻 阅读(561) 评论(0) 推荐(0)

PHP闭包研究
摘要:闭包也就是PHP的匿名函数, 但是和函数不同的是,闭包可以通过use使用函数声明时所在作用域的变量的值。形式如下$a = function($arg1, $arg2) use ($variable) { // 声明函数闭包到变量$a, 参数为$arg1, $arg2 ,该闭包需使用$variable变量}例如<?php$result = 0; $one = function(){ var_dump($result); }; $two = function() use ($result){ var_dump($result); }; // 可以认为 $two这个变量 本身记录了该函数的声明 阅读全文

posted @ 2013-10-22 18:38 出发的兰彻 阅读(176) 评论(0) 推荐(0)

导航