文章分类 - PHP
摘要:from: http://www.mike.org.cn/articles/what-is-cgi-fastcgi-php-fpm-spawn-fcgi/什么是CGI CGI全称是“公共网关接口”(Common Gateway Interface),HTTP服务器与你的或其它机器上的程序进行“交谈”的一种工具,其程序须运行在网络服务器上。 CGI可以用任何一种语言编写,只要这种语言具有标准输入、输出和环境变量。如php,perl,tcl等什么是FastCGI FastCGI像是一个常驻(long-live)型的CGI,它可以一直执行着,只要激活后,不会每次都要花费时间去for...
阅读全文
摘要:from:http://mengqing.org/archives/php-cut-utf8-string.html想必很多人从一开始接触编程到现在,都有一个惯性思维:英文字符占用一个字节,中文字符占用两个字节。不错,英文字符是占用一个字节,但中文字符占用两个字节是相对于GBK编码而言(当然,其他一些编码如GB2312也是),但是在时下国际流行的UTF8编码中,一个中文字符占用3个字节。不要惊讶,这是一个事实,而且应该成为一个常识。UTF8编码可能出现一个字符占用1个、2个、3个甚至更多字节的情况,如英文字符abc占用一个字节,中文字符占用三个字节,那么什么字符占用两个字节呢?这个问题我一开始
阅读全文
摘要:PHPUnit 安装install pear$ wget http://pear.php.net/go-pear.phar$ php go-pear.pharinstall phpunit$ pear config-set auto_discover 1$ pear install pear.phpunit.de/PHPUnit$pear install phpunit/PHPUnit_Selenium$ pear install phpunit/PHP_Invoker$ pear install phpunit/DbUnit$ pear install phpunit/PHPUnit_Sto
阅读全文
摘要:From:http://www.mwop.net/blog/234-Module-Bootstraps-in-Zend-Framework-Dos-and-Donts.htmlI see a number of questions regularly about module bootstraps in Zend Framework, and decided it was time to write a post about them finally.In Zend Framework 1.8.0, we addedZend_Application, which is intended to
阅读全文
摘要:转自: http://www.ooso.net/index.php/archives/301在maillist中看到Rasmus的一段对于php APC模块的发言。作为APC的作者,他的见解应该是很有参考价值的。APC will probably be 20-30% faster, but if you are writing to it frequently it can cause problems. The APC cache is best for things that change very rarely. And by very rarely I mean days, not h
阅读全文
摘要:经常需要测试PHP代码执行时间,决定代码是否需要优化,在网上找了个Timer类,与大家分享!PHP代码<?php class Timer{ private $start = 0; private $end = 0; private function now(){ list($usec,$sec) = explode(' ',microtime()); return ((float)$usec + (float)$sec); } public function start(){ $th...
阅读全文
摘要:简单的实现方式:<?php$params = "name=bob&age=12";$fp = fsockopen("localhost", 80, $errno, $errstr, 30) or die("Error: {$errstr}($errno)/r/n"); $out = "POST /test/fsockopen/post/post.php HTTP/1.1/r/n";$out .= "Host: localhost/r/n";$out .= "Content
阅读全文
摘要:当正则表达式中包含能接受重复的限定符时,通常的行为是(在使整个表达式能得到匹配的前提下)匹配尽可能多的字符。以这个表达式为例:a.*b,它将会匹配最长的以a开始,以b结束的字符串。如果用它来搜索aabab的话,它会匹配整个字符串aabab。这被称为贪婪匹配。 有时,我们更需要懒惰匹配,也就是匹配尽可能少的字符。前面给出的限定符都可以被转化为懒惰匹配模式,只要在它后面加上一个问号?。这样.*?就意味着匹配任意数量的重复,但是在能使整个匹配成功的前提下使用最少的重复。现在看看懒惰版的例子吧: a.*?b匹配最短的,以a开始,以b结束的字符串。如果把它应用于aabab的话,它会匹配aab(第一到..
阅读全文
摘要:PHP 语言同其他语言一样,具有垃圾回收机制。那么今天我们要为大家讲解的内容就是关于PHP垃圾回收机制的相关问题。希望对大家有所帮助。一、PHP 垃圾回收机制(Garbage Collector 简称GC)在PHP中,没有任何变量指向这个对象时,这个对象就成为垃圾。PHP会将其在内存中销毁;这是PHP的GC垃圾处理机制,防止内存溢出。当一个PHP线程结束时,当前占用的所有内存空间都会被销毁,当前程序中所有对象同时被销毁。GC进程一般都跟着每起一个SESSION而开始运行的.gc目的是为了在 session文件过期以后自动销毁删除这些文件.二、 __destruct /unset__destru
阅读全文
摘要:/*【插入排序(一维数组)】【基本思想】:每次将一个待排序的数据元素,插入到前面已经排好序的数列中的适当位置,使数列依然有序;直到待排序数据元素全部插入完为止。【示例】:[初始关键字] [49] 38 65 97 76 13 27 49J=2(38) [38 49] 65 97 76 13 27 49J=3(65) [38 49 65] 97 76 13 27 49J=4(97) [38 49 65 97] 76 13 27 49J=5(76) [38 49 65 76 97] 13 27 49J=6(13) [13 38 49 65 76 97] 27 49J=7(27) [13 27 38
阅读全文
摘要:Session储存于服务器端(默认以文件方式存储session),根据客户端提供的session id来得到用户的文件,取得变量的值,session id可以使用客户端的Cookie或者Http1.1协议的Query_String(就是访问的URL的“?”后面的部分)来传送给服务器,然后服务器 读取Session的目录……。也就是说,session id是取得存储在服务上的session变量的身份证。当代码session_start();运行的时候,就在服务器上产生了一个session文件, 随之也产生了与之唯一对应的一个session id,定义session变量以一定形式存储在刚才产生的s
阅读全文
摘要:一、术语session 在我的经验里,session这个词被滥用的程度大概仅次于transaction,更加有趣的是transaction与session在某些语境下的含义是相同的。 session,中文经常翻译为会话,其本来的含义是指有始有终的一系列动作/消息,比如打电话时从拿起电话拨号到挂断电话这中间的一系列过程可以 称之为一个session。有时候我们可以看到这样的话“在一个浏览器会话期间,...”,这里的会话一词用的就是其本义,是指从一个浏览器窗口打开到关 闭这个期间①。最混乱的是“用户(客户端)在一次会话期间”这样一句话,它可能指用户的一系列动作(一般情况下是同某个具体目的相关的一系
阅读全文
摘要:PHP把所有以__(两个下划线)开头的类方法当成魔术方法。所以你定义自己的类方法时,不要以 __为前缀。 1、__construct()当实例化一个对象的时候,这个对象的构造方法将首先被调用;我们知道php5对象模型和类名相同的函数是类的构造函数,那么如果同时定义构造函数和__construc()方法的话,php5会默认调用__contruct()而不会调用同类名函数,所以__contruct()作为类的默认构造函数;2、__destruct()析构函数会在到某个对象的所有引用都被删除或者当对象被显式销毁时执行。3、__get(string $name)当试图读取一个并不存在的属性时被调用;如
阅读全文
摘要:1. 截取GB2312字符用的函数<?php//截取中文字符串function mysubstr($str, $start, $len) { $tmpstr = ""; $strlen = $start + $len; for($i = 0; $i < $strlen; $i++) { if(ord(substr($str, $i, 1)) > 0xa0) { $tmpstr .= substr($str, $i, 2); $i++; } else $tmpstr .= substr($str, $i, 1); } return $tmpstr;}?>
阅读全文
摘要:这两个函数在格式化带有英文字符的html代码的时候基本没啥问题,但是htmlentities对中文字符也不放过,这样得出来的结果是中文字符 部分变为一堆乱码。当时做英文站的时候根本就没觉察到这个问题,而今天公司的一个收藏站却因为有有非英文字符而出现了问题,我最终查出来是 htmlentities这个函数的问题,同时我也找到了htmlspecialchars这个函数。 对于这两个函数,php手册上都是英文做的解释,其中在htmlentities函数的说明部分有这么一段英文: This function is identical to htmlspecialchars() in all ways,
阅读全文
摘要:防范可以从两个方面着手,一个就是服务器,二个就是代码本身,介绍服务器配置的文章很多了,无非就是把magic_quotes_gpc设置为 On,display_errors设置为Off,这里也就不在多说,既然本文接触都是程序的问题,我们还是从程序本身寻找原因。 如果说php比asp易用,安全,从内置的函数就可以体现出来。如果是整形的变量,只需使用一个intval()函数即可解决问题,在执行查询之前,我们先处理一下变量,如下面的例子就是很安全的了:$id = intval($id); mysql_query("SELECT * FROM article WHERE arti...
阅读全文
摘要:正则表达式用于字符串处理、表单验证等场合,实用高效。现将一些常用的表达式收集于此,以备不时之需。匹配中文字符的正则 表达式: [/u4e00-/u9fa5]评注:匹配中文还真是个头疼的事,有了这个表达式就好办了匹配双字节字符(包括汉字在内):[^/x00-/xff]评注:可以用来计算字符串的长度(一个双字节字符长度计2,ASCII字符计1)匹配空白行的正则表达式:/n/s*/r评注:可以用来删除空白行匹配HTML标记的正则表达式:<(/S*?)[^>]*>.*?<//1>|<.*? />评注:网上流传的版本太糟糕,上面这个也仅仅能匹配部分,对于复杂的嵌
阅读全文
摘要:1、ereg里面是不需要也不能使用分隔符和修饰符的,所以ereg的功能比preg要弱上不少。 2、关于".":点在正则里面一般是除了换行符以外的全部字符,但是在ereg里面的"."是任意字符,即包括换行符!如果在preg里面希望"." 能够包括换行符,可以在修饰符中加上"s"。 3、ereg默认使用贪婪模式,并且不能修改,这个给很多替换和匹配带来麻烦。 4、速度:这个或许是很多人关心的问题,会不会preg功能强大是以速度来换取的?不用担心,preg的速度要远远比ereg快,笔者做了一个程序测 试: <?php
阅读全文
摘要:PHP作为一种服务器端的脚本语言,象编写简单,或者是复杂的动态网页这样的任务,它完全能够胜任。但事情不总是如此,有时为了实现某个功能,必须借助于 操作系统的外部程序(或者称之为命令),这样可以做到事半功倍。 那么,是否可以在PHP脚本中调用外部命令呢?如果能,如何去做呢?有些什么方面的顾虑呢?相信你看了本文后,肯定能够回答这些问题了。是否可以? 答案是肯定的。PHP和其它的程序设计语言一样,完全可以在程序内调用外部命令,并且是很简单的:只要用一个或几个函数即可。前提条件 由于PHP基本是用于WEB程序开发的,所以安全性成了人们考虑的一个重要方面。于是PHP的设计者们给PHP加了一个门:安...
阅读全文
摘要:在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询 ->发送查询到数据库->取得数据库返回结果->关闭数据库连接。但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把 SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理。普遍使用的缓存技术数据缓存:这里所说的数据缓存是指数据库查询缓存,每次访问页面的时候,都会先检测相应的缓存数据是否存在,如果不存在,就连接数据库,得到数据,并把查询结果序列化后
阅读全文
浙公网安备 33010602011771号