订阅本站

PHP多进程编程

huangdijia 发表于 2012-5-10 分类 PHP/PHP框架 | 发表评论

使用PHP真正的多进程运行模式,适用于数据采集、邮件群发、数据源更新、tcp服务器等环节。

PHP有一组进程控制函数(编译时需要 –enable-pcntl与posix扩展),使得php能在*nix系统中实现跟c一样的创建子进程、使用exec函数执行程序、处理信号等功能。 PCNTL使用ticks来作为信号处理机制(signal handle callback mechanism),可以最小程度地降低处理异步事件时的负载。何谓ticks?Tick 是一个在代码段中解释器每执行 N 条低级语句就会发生的事件,这个代码段需要通过declare来指定。 查看全文

PHP数据流应用的一个简单例子

huangdijia 发表于 2012-5-9 分类 PHP/PHP框架 | 发表评论
<?php
$count = 5;
start:
if($count < 5) echo "You can try {$count} time, ";
echo "Put Password: ";
$handle = fopen ("php://stdin","r");
$line = fgets($handle);
if(trim($line) != '123456'){
    $count--;
    if(!$count) goto error;
    goto start;
}
goto success;
error:
    echo "Please try after 1 hour!";
    goto out;
success:
    echo "Logined!";
out:
?>

执行结果:

HTTP请求模型

huangdijia 发表于 2012-5-6 分类 Web服务器 | 发表评论

一、连接至Web服务器
一个客户端应用(如Web浏览器)打开到Web服务器的HTTP端口的一个套接字(缺省为80)。

例如:

http://www.myweb.com:8080/index.html

在Java中,这将等同于代码:

Soceet socket=new Socket("www.myweb.com",8080);
InputStream in=socket.getInputStream();
OutputStream out=socket.getOutputStream();

二、发送HTTP请求
通过连接,客户端写一个ASCII文本请求行,后跟0或多个HTTP头标,一个空行和实现请求的任意数据。
查看全文

一、autoload机制概述
在使用PHP的OO模式开发系统时,通常大家习惯上将每个类的实现都存放在一个单独的文件里,这样会很容易实现对类进行复用,同时将来维护时也很便利。这也是OO设计的基本思想之一。在PHP5之前,如果需要使用一个类,只需要直接使用include/require将其包含进来即可。 查看全文

php垃圾收集机制

huangdijia 发表于 2012-5-4 分类 PHP/PHP框架, Web服务器 | 发表评论

前言

PHP是一门托管型语言,在PHP编程中程序员不需要手工处理内存资源的分配与释放(使用C编写PHP或Zend扩展除外),这就意味着PHP本身实现了垃圾回收机制(Garbage Collection)。现在如果去PHP官方网站(php.net)可以看到,目前PHP5的两个分支版本PHP5.2和PHP5.3是分别更新的,这是因为许多项目仍然使用5.2版本的PHP,而5.3版本对5.2并不是完全兼容。PHP5.3在PHP5.2的基础上做了诸多改进,其中垃圾回收算法就属于一个比较大的改变。本文将分别讨论PHP5.2和PHP5.3的垃圾回收机制,并讨论这种演化和改进对于程序员编写PHP的影响以及要注意的问题。 查看全文

PHP优于Node.js的五大理由

huangdijia 发表于 2012-4-27 分类 PHP/PHP框架, Web服务器 | 1条评论

PHP是一款服务器端的脚本语言,主要用于动态网页开发,是目前最流行的开发语言之一。Node是一款用来编写高性能网络服务器的JavaScript工具包。作者Jani Hartikainen发表了一篇博文,文中将两者进行对比,列举了PHP优于Node.js的五大理由。一起来看下。 查看全文

几个PHP算法题

huangdijia 发表于 2012-4-23 分类 PHP/PHP框架 | 发表评论

有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来,把所有菜果分成5份,但是多了一个,顺手把这个扔给树上的猴了,自己先拿1/5藏了。没想到其他四人也都是这么想的,都如第一个人一样分成5份把多的那一个扔给了猴,偷走了1/5。第二天,大家分赃,也是分成5份多一个扔给猴了。最后一人分了一份。问:共有多少苹果? 查看全文

global static 和$GLOBALS使用与区别

huangdijia 发表于 2012-4-20 分类 PHP/PHP框架 | 发表评论

1.global在整个页面起作用。
2.static只在function和class内起作用。
global和$GLOBALS使用基本相同,但在实际开发中大不相同。
global在函数产生一个指向函数外部变量的别名变量,而不是真正的函数外部变量,一但改变了别名变量的指向地址,就会发生一些意料不到情况,例如例子1.
$GLOBALS[]确确实实调用是外部的变量,函数内外会始终保持一致!

态度篇
1. 做实事:不要抱怨,发牢骚,指责他人,找出问题所在,想办法解决。对问题和错误,要勇于承担。
2. 欲速则不达:用小聪明、权宜之计解决问题,求快而不顾代码质量,会给项目留下要命的死角。
3. 对事不对人:就事论事,明智、真诚、虚心地讨论问题,提出创新方案。
4. 排除万难,奋勇前进:勇气往往是克服困难的唯一方法。

学习篇
5. 跟踪变化:新技术层出不穷并不可怕。坚持学习新技术,读书,读技术杂志,参加技术活动,与人交流。要多理解新词背后的所以然,把握技术大趋势,将新技术用 于产品开发要谨慎。
6. 对团队投资:打造学习型团队,不断提高兄弟们的平均水平。
7. 懂得丢弃:老的套路和技术,该丢,就得丢。不要固步自封。
8. 打破砂锅问到底:不断追问,真正搞懂问题的本质。为什么?应该成为你的口头禅。
9. 把握开发节奏:控制好时间,养成好习惯,不要加班。 查看全文