随笔分类 -  PHP

摘要:<?php/** * @author:xiaojiang * PHP 实现explort();功能 */$str = ',1,2,3,4,321321,aaa,bbb';function myExplode($seg,$str,$limit=0){ $_ret = array(0=>''); $len = strlen($str); $slen = strlen($seg); $_limit = 0; for($i=0; $i<$len; $i++){ if(substr($str,$i,$slen) == $seg ){ $_limit++; 阅读全文
posted @ 2013-05-11 15:08 ﹏Sakura 阅读(340) 评论(0) 推荐(0)
摘要:<?php/** * @author:xiaojiang * PHP 实现var_export();功能 */ $arr = array("1","2","3"); $arr1 = array('a'=>NULL,'b'=>array('1'=>3)); var_export($arr); //var_export($arr1); function varExport($arr){ $ret = "array( "; foreach($arr 阅读全文
posted @ 2013-05-10 00:23 ﹏Sakura 阅读(299) 评论(0) 推荐(0)
摘要:用TP 集成支付宝账户绑定功能时碰上个问题 ORM 下有文件 config.class.php 直接import()后 发现里面的变量无法使用 但确实是加载咯。。(在config.class.php输出内容成功) 思考百度了半天。。 原来一直知道 JS 作用域 忽略了 PHP 函数也有作用域的- - 具体原理: <?phpclass b{ function test(){ myImport("a.php"); $testClass = new impClass(); $testClass->test(); echo $a."from b"; 阅读全文
posted @ 2013-05-09 10:04 ﹏Sakura 阅读(332) 评论(0) 推荐(0)
摘要:[PHP]engine = Onshort_open_tag = Onasp_tags = Onprecision = 14y2k_compliance = Onoutput_buffering = 4096zlib.output_compression = Offimplicit_flush = Offunserialize_callback_func =serialize_precision = 100allow_call_time_pass_reference = Offsafe_mode = Offsafe_mode_gid = Offsafe_mode_include_dir =sa 阅读全文
posted @ 2013-04-26 17:34 ﹏Sakura 阅读(622) 评论(0) 推荐(0)
摘要:<?php/* * @author : xiaojiang * @time : 2013-04-25 *///定义缩略图片尺寸$picSize = array( '100_100'=> 1, '200_100'=> 1 );$imagePath = "../image/";function parseUrl($url){ preg_match("/(?P<name>[\w\d]+)_w(?P<width>\d+)_h(?P<height>\d+)\.(?P<ext>\ 阅读全文
posted @ 2013-04-26 10:00 ﹏Sakura 阅读(322) 评论(0) 推荐(0)
摘要:function compare($ph1,$ph2){ $ret = ''; $_f1Arr = explode("/",$ph1); $_f2Arr = explode("/",$ph2); $f1 = array_pop($_f1Arr); $f2 = array_pop($_f2Arr); for($i=0;$i<count($_f1Arr);$i++){ if($_f1Arr[$i] !== $_f2Arr[$i]) break; } for($j= $i-1;$j<count($_f1Arr... 阅读全文
posted @ 2013-03-27 17:34 ﹏Sakura 阅读(245) 评论(0) 推荐(0)
摘要:PHP正则表达式模式修正符PHP正则表达式 /i, /is, /s, /isU等 都是些什么东西呢?1、正则表达式运算顺序 ( ) 圆括号因为是内存处理所以最高* ? + { } 重复匹配内容其次^ $ \b 边界处理第三| 条件处理第四最后按照运算顺序计算匹配2、正则表达式模式修正符i 正则内容在匹配时候不区分大小写(默认是区分的)m 在匹配首内容或者尾内容时候采用多行识别匹配S 将转义回车取消是为单行匹配如. 匹配的时候x 忽略正则中的空白A 强制从头开始匹配D 强制$匹配尾部无任何内容 \nU 禁止贪婪匹配 只跟踪到最近的一个匹配符并结束, 常用在采集程序上的正则表达式i 匹配大小写s 阅读全文
posted @ 2013-02-06 23:00 ﹏Sakura 阅读(2557) 评论(0) 推荐(0)
摘要:<?phpfunction map($fun, $list,$params=array()){ $acc=NULL; $last=array_push($params, NULL,$acc)-1; foreach($list as $params[$last-1]){ //第一次见这种写法感觉很神奇 $params[$last]=call_user_func_array($fun , $params ); } $acc=array_pop($params); return $acc;}function add($element,$ac... 阅读全文
posted @ 2013-01-26 15:14 ﹏Sakura 阅读(220) 评论(0) 推荐(0)
摘要:额。今天做图片上传时要用这个。 边开手册边研究 函数是很好用 但是不支持多级 例如“aaa/bbb” 只支持以及目录 也可能是FTP服务器不同吧, 反正开发环境建不成功 照着手册老外改了下 测试支持 多级 <?php/* *@param ftp FTP链接 path 要创建的路径 */function _ftpMkdir($ftp,$path){ $pathArr = explode("/",$path); $fullpath = ""; $total = count($pathArr); for($i = 0; $i < $total... 阅读全文
posted @ 2013-01-22 16:43 ﹏Sakura 阅读(1135) 评论(0) 推荐(0)
摘要:今天在开发碰到个棘手的问题 。 当异步请求后台处理一个大数据量操作时 请求其他控制器都没返回信息了。。起初以为是Ext 框架设置了ajax同步造成的。 后来发现时session 死锁造成其他控制器在等待session 完成后才能操作。(主要是用户登录判断需要更新session) 当PHP 处理大数据量操作时 不能及时操作完成 这时候又有访问其他控制器或者 异步请求时候会造成session 死锁现象 和同事探讨了下 可使用session_write_close() 解决此问题Descriptionvoid session_write_close ( void )End the c... 阅读全文
posted @ 2012-11-16 09:43 ﹏Sakura 阅读(1262) 评论(0) 推荐(0)
摘要:由于是午休时间写的 所以不太详细尽情谅解。 主要还是老生常谈的问题 OOP 。。。 工作两年 对OOP 这玩意有些自己的理念 ,但翻遍了各大书店的OOP 介绍都是天马行空 (很像是一个人写的) <?php class Car{ public getName(){ return $this->name; } public getSpeed(){ return $this->speed; } }?>这种东西相信只会出现在书上 真正项目基本看不到这类代码。。(JAVAbean除外)而根据这类思路我有了以下代码... 阅读全文
posted @ 2012-10-29 12:37 ﹏Sakura 阅读(4098) 评论(6) 推荐(1)
摘要:<?php// 欄位字串為$querys = array("name"=>"shian"); // 數值等於多少$querys = array("number"=>7); // 數值大於多少$querys = array("number"=>array('$gt' => 5)); // 數值大於等於多少$querys = array("number"=>array('$gte' => 2)); // 數值小於多少$quer 阅读全文
posted @ 2012-10-15 14:28 ﹏Sakura 阅读(3377) 评论(0) 推荐(0)
摘要:在页面的最前页加上date_default_timezone_set(PRC); /*把时间调到北京时间,php5默认为格林威治标准时间*/date ()a: "am"或是"pm" A: "AM"或是"PM" d: 几日,两位数字,若不足则补零;从"01"至"31" D: 星期几,3个英文字母,如:"Fri" F: 月份,英文全名,如:"January" h: 12小时制的小时,从"01"至"12" 阅读全文
posted @ 2012-09-29 12:10 ﹏Sakura 阅读(76820) 评论(0) 推荐(1)
摘要:Varnish是一款高性能的开源HTTP加速器,挪威最大的在线报纸 Verdens Gang 使用3台Varnish代替了原来的12台Squid,性能比以前更好。但与老牌的squid相比,各有各的优劣势,网上大量的相对比较只是在其个人对自己熟悉的应用的最大使用上的发挥而已,可能squid到了有能力的人手上才足以发挥最强大的威力Varnish采用了“Visual Page Cache”技术,在内存的利用上,Varnish比Squid具有优势,它避免了Squid频繁在内存、磁盘中交换文件,性能要比Squid高。通过Varnish管理端口,可以使用正则表达式快速、批量地清除部分缓存,这一点是Squi 阅读全文
posted @ 2012-09-11 11:08 ﹏Sakura 阅读(5564) 评论(0) 推荐(0)
摘要:<?php //初始化gridfs $conn = new Mongo(); //连接MongoDB $db = $conn->photos; //选择数据库 $grid = $db->getGridFS(); //取得gridfs对象 //gridfs有三种方式存储文件 //第一种直接存储文件 $id = $grid->storeFile("./logo.png"); //第二种存储文件二进制流 $data = get_file_contents("./logo.png"); $id = $grid->storeBytes 阅读全文
posted @ 2012-09-04 20:15 ﹏Sakura 阅读(2846) 评论(0) 推荐(0)
摘要:最近都写了很多博文,其实这些都是一些总结性东西,之前我学习新东西的笔记都是写到word文档里面,渐渐地我发现,写在word文档很麻烦。修改Word文档很不便,而博文就像云服务一样,随处可以修改,只要发现之前写的博文欠妥或者不够完善了,马上就可以修改。后续将会继续把之前总结在word的内容copy上来:设计模式,数据结构与算法,linux编程之类等等。因此我渐渐地把之前的一些内容copy到博文这里来。一方面是易于修改,另外方面是温故而知新。当然了,最新的一些博文有些是新内容的,那些都涉及到PHP内核。最近开始深入PHP内核,了解底层。顺便提到做为php开发者,我认为先把php学好学精,术业有专攻 阅读全文
posted @ 2012-08-21 21:34 ﹏Sakura 阅读(463) 评论(0) 推荐(1)
摘要:1.尽量静态化:如果一个方法能被静态,那就声明它为静态的,速度可提高1/4,甚至我测试的时候,这个提高了近三倍。当然了,这个测试方法需要在十万级以上次执行,效果才明显。其实静态方法和非静态方法的效率主要区别在内存:静态方法在程序开始时生成内存,实例方法在程序运行中生成内存,所以静态方法可以直接调用,实例方法要先成生实例,通过实例调用方法,静态速度很快,但是多了会占内存。任何语言都是对内存和磁盘的操作,至于是否面向对象,只是软件层的问题,底层都是一样的,只是实现方法不同。静态内存是连续的,因为是在程序开始时就生成了,而实例申请的是离散的空间,所以当然没有静态方法快。静态方法始终调用同一块内存,其 阅读全文
posted @ 2012-08-21 20:53 ﹏Sakura 阅读(31489) 评论(6) 推荐(7)
摘要:一、先看最简单的情况。有两个数组:$arr1 = array(1,9,5);$arr2 = array(6,2,4);array_multisort($arr1,$arr2);print_r($arr1); // 得到的顺序是1,5,9print_r($arr2); // 得到的顺序是6,4,2我估计两个数组的值自始至终都是对应着的:1对应6,9对应2,5对应4。我们再加多一个数组看看会怎样:$arr1 = array(1,9,5);$arr2 = array(6,2,4);$arr3 = array(3,7,8);array_multisort($arr1,$arr2,$arr3);查看结果 阅读全文
posted @ 2012-08-21 00:20 ﹏Sakura 阅读(964) 评论(0) 推荐(0)
摘要:<?php$dir = "D:/www/";function scanf_dir($dir , $level = 0){ if(( $level == 0 &&!is_dir($dir)) || !is_readable($dir)){ //节省一处判断很重要! die("$dir 路径无效"); } $handler = opendir($dir); while(false !== ($file = readdir($handler)) ){ if(in_array($file,array('.','..& 阅读全文
posted @ 2012-08-18 15:13 ﹏Sakura 阅读(291) 评论(0) 推荐(0)
摘要:<?php/*** create by :xiaojiang* PHP log 类 日志入库功能 仅供交流学习*/class Config{ public static function getConfig (){ return array( 'LOG_LEVEL'=>75 //INFO ); }}class Log{ private $LogFile; private $logLevel; const DEBUG = 100; const INFO = 75; const NOTICE = 50; ... 阅读全文
posted @ 2012-08-16 00:10 ﹏Sakura 阅读(943) 评论(0) 推荐(0)