策略模式

发表时间:2016-10-14 04:38:37 文章分类:PHP 阅读:200
暂无文章介绍

10进制转gbk中文互转

发表时间:2016-10-14 04:38:01 文章分类:PHP 阅读:225
/** * 10进制转中文(浏览器用gbk编码) */ public function test() { $hex_str = ''; $arr = array( 214, 247, 210,170,190,205,202, 199,207,235,202, 212,202,212,184,248,212,219,195,199,188, 196,208,197,202,177,181,216,214,183,191, 201,210,212,208,180,181,195,182,224,188,242, 194,212,161,173,161,173 ); foreach ($arr as $v) { $hex_str = $hex_str. '%'.dechex($v); } echo urldecode($hex_str); } public function entest() { $doc_str = ''; $str = '以后程序员都用10进制写吧,哈哈...'; $en_str = urlencode($str); $arr = explode('%', trim($en_str, '%')); if ($arr) { foreach ($arr as $v) { $doc_str = $doc_str . hexdec($v).','; } } echo $doc_str; }

设计模式-状态模式

发表时间:2016-10-14 04:37:09 文章分类:PHP 阅读:209
暂无文章介绍

设计模式-装饰模式

发表时间:2016-10-14 04:36:45 文章分类:PHP 阅读:222
暂无文章介绍

设计模式-工厂方式

发表时间:2016-10-14 04:36:17 文章分类:PHP 阅读:213
暂无文章介绍

PHP模拟链表

发表时间:2016-10-14 04:35:49 文章分类:PHP 阅读:202
暂无文章介绍

PHP计算表达式-栈

发表时间:2016-10-14 04:35:08 文章分类:PHP 阅读:220
暂无文章介绍

一致性哈希

发表时间:2016-10-14 04:33:36 文章分类:PHP 阅读:259
暂无文章介绍

PHP内核研究 函数的返回值

发表时间:2014-02-27 06:52:52 文章分类:PHP 阅读:1651
从根本来说,PHP的每个函数或方法都存在返回值,可能有的时候不写return,这个时候 会返回NULL.
function test(){         return 1;}
经过分析找到token
T_RETURN ';'                                            { zend_do_return(NULL, 0 TSRM     LS_CC); }         |       T_RETURN expr_without_variable ';'     { zend_do_return(&$2, 0 TSRMLS_CC); }         |       T_RETURN variable ';'                  { zend_do_return(&$2, 1 TSRMLS_CC); }
上面三个token代表函数返回的三种形式,return ;return 立即数(字符串);return 变量; //返回变量/引用返回执行的函数为 zend_do_returnPHP对三种不同的返回值做了不同的处理.我们详细来看一下zend_do_return(NULL, 0 TSRM LS_CC);是返回NULLzend_do_return(&$2, 0 TSRMLS_CC); //直接返回 立即数或字符串zen

PHP不使用第三个变量交换两个变量的值

发表时间:2012-10-17 08:28:32 文章分类:PHP 阅读:362938
$a = 1 ; $b = 5 ;yh( $a , $b );$a = 11; $b = 51 ;yh( $a , $b );$a = 12; $b = 52;yh( $a , $b );$a = '13' ; $b = '53' ;yh( $a , $b );$a = 'aa' ; $b = 5 ;yh( $a , $b );function yh( $a , $b ){ $a=$a^$b; $b=$b^$a; $a=$a^$b; echo $a . "\\t$b\\n";}此算法能够实现是由异或运算的特点决定的,通过异或运算能够使数据中的某些位翻转,其他位不变。这就意味着任意一个数与任意一个给定的值连续异或两次,值不变。即:a^b^b=a。将a=a^b代入b=a^b则得b=a^b^b=a;同理可以得到a=b^a^a=b;轻松完成交换。

再谈PHP开发规范问题之结束符“?>”

发表时间:2012-07-24 03:52:59 文章分类:PHP 阅读:248969
文件格式文件应该使用 Unicode (UTF-8) 编码保存。同时不要使用 字节序标记(BOM) 。与 UTF-16 和 UTF-32 不同,UTF-8 编码的文件不需要指明字节序,而且 字节序标记(BOM) 在PHP中会产生预期之外的输出,阻止了应用程序设置它自己的头信息。应该使用Unix 格式的行结束符(LF)。PHP 闭合标签PHP闭合标签“?>”在PHP中对PHP的分析器是可选的。 但是,如果使用闭合标签,任何由开发者,用户,或者FTP应用程序插入闭合标签后面的空格都有可能会引起多余的输出、php错误、之后的输出无法显示、空白页。因此,所有的php文件应该省略这个php闭合标签,并插入一段注释来标明这是文件的底部并定位这个文件在这个应用的相对路径。这样有利于你确定这个文件已经结束而不是被删节的。不当的: 适当的: [span style="font-size:12px;color:#0000FF;"]

PHP中Push(推送)技术的探讨

发表时间:2012-04-16 07:37:12 文章分类:PHP 阅读:50870
随着人们对Web即时应用需求的不断上升,Server Push(推送)技术在聊天、消息提醒尤其是社交网络等方面开始兴起,成为实时应用的数据流核心。这篇日志试图探讨的便是各种适合于PHP的Push的实现方式以及其优劣。1. 什么是Server Push想象在聊天应用中,如果使用传统的ajax来承担消息的传入,那么一般是通过每隔一定时间拉取一次信息的方式实现,但是其实这种方式有大量查询是浪费的。聊天等Web应用更需要服务器在特定时间来主动告知前端有新的消息(Push),而不是前端每时每刻问服务器:“来消息了吗?”(Pull)。这也正是为什么这个技术常被叫做反向ajax。其他别名:Comet,反向Ajax2. 如何实现Push其实所谓的推送技术也没有多么复杂,目前从大类上有3种,一种仍然建立在ajax基础上,还有一种建立在框架基础上,最后一种抛弃了传统的HTTP协议,使用Flash或者HTML5的WebSockets技术。接下来将对这三种类别产生的不同的方式进行探讨。1) Ajax 长轮询Ajax长轮询从本质上来说仍然是一种pull,但是实时性较高,无用请求减少很多,是一种不错的Push实现方案。不过它只减少了网络上的无谓消耗。核心: 客户端发起一个ajax请求,服务端将请求搁置(pending)或者说挂起,直到到了超时时间(timeout)或需要推送时返回;客户端则等待ajax返回后处理数据,再发起下一个ajax请求。优点: 兼容性较高,实现简单缺点: 对

新浪微博地址得到微博id,php int64 ,php科学计数法转换,php进制转换

发表时间:2011-12-22 10:21:43 文章分类:PHP 阅读:49187
如要转发请带上作者和本文链接![mycode=PHP]

php接收标准输入和获取新浪中超滚动新闻

发表时间:2011-12-16 08:34:18 文章分类:PHP 阅读:3586
无聊随手写了一点小应用,记录一下。1.【-r】接受url获取url内容:/usr/local/phpcgi/bin/php test_sina.php -rhttp://www.baidu.com2.【-uinput】接收标准输入,获取输入的url内容:/usr/local/phpcgi/bin/php test_sina.php -uinput3.没有任何输入,打印滚动新闻标题:/usr/local/phpcgi/bin/php test_sina.phptest_sina.php的代码如下:[mycode=PHP]

PHP中面向对象设计的经验总结

发表时间:2011-10-24 10:47:06 文章分类:PHP 阅读:11353
1.所有数据都应该隐藏在所在的类的内部。2.类的使用者必须依赖类的共有接口,但类不能依赖它的使用者。3.尽量减少类的协议中的消息。4.实现所有类都理解的最基本公有接口例如,拷贝操作(深拷贝和浅拷贝)、相等性判断、正确输出内容、从ASCII描述解析等等。5.不要把实现细节(例如放置共用代码的私有函数)放到类的公有接口中。如果类的两个方法有一段公共代码,那么就可以创建一个防止这些公共代码的私有函数。6.不要以用户无法使用或不感兴趣的东西扰乱类的公有接口。7.类之间应该零耦合,或者只有导出耦合关系。也即,一个类要么同另一个类毫无关系,要么只使用另一个类的公有接口中的操作。8.类应该只表示一个关键抽象。包中的所有类对于同一类性质的变化应该是共同封闭的。一个变化若对一个包影响,则将对包中的所有类产生影响,而对其他的包不造成任何影响。9.把相关的数据和行为集中放置。设计者应当留意那些通过get之类操作从别的对象中获取数据的对象。这种类型的行为暗示着这条经验原则被违反了。10.把不相关的信息放在另一个类中(也即:互不沟通的行为)。朝着稳定的方向进行依赖。11.确保你为之建模的抽象概念是类,而不只是对象扮演的角色。12.在水平方向上尽可能统一地分布系统功能,也即:按照设计,顶层类应当统一地共享工作。13.在你的系统中不要创建全能类/对象。对名字包含Driver、Manager、System、Susystem的类要特别多加小心。规划一个接口而不是实现一个接口。14.对公共接口中定义了大量访问方法的类多加小心。大量访问方法意味着相关数据和行为没有集中存放。15.对包含太多互不沟通的行为的类多加小心。这个问题的另一表现是在你的应用程序中的类的公有接口中创建了很多的get和set函数。16.在由同用户界面交互的面向对象模型构成的应用程序中,模型不应该依赖于界面,界面则应当依赖于模型。17.尽可能地按照现实世界建模(我们常常为了遵守系统功能分布原则、避免全能类原则以及集中放置相关数
12345678下一页