目前有writeover,readover,mkdir三个方法。 *其三个方法均是静态方法。注意mkdir可以 * 逐级地建目录,这是与php自带的mkdir不 * 同的地方。所有对文件的操作都应该通过 * 这个对象进行,这样可以通过改写这个对 * 象实现对文件IO过程的日志。 * *@package authorcn *@subpackage common *@author renlu *@link http://www.162cm.com *@example FILEOper::writeover(“d.txt”,”hello,this is a test.”) *@name fileoper */ class fileoper { /** *读取文件内容。 *@param $filename 给定的文件名. *@return string(文件内容) *@access private *@static */ function readover($filename) { if(file_exists($filename)) { $file=fopen($filename,”r”); flock($file,LOCK_SH); $filedetail=fread($file,filesize($filename)); fclose($file); return $filedetail; } else return “”; } /** *写入数据函数 *@param $fileanme 文件名称 *@param $data 文 件内容 *@param $method 已经不再用了. *@access private *@static */ function writeover($filename,$data,$method=”w”) { $file=fopen($filename,$method); flock($file,LOCK_EX); $filedetail=fwrite($file,$data); fclose($file); return $filedetail; } /** * 递归建立一个目录 * * @param string $dirstring 目录名 */ function mkdir($dirstring) { $dirstring=str_replace(“\“,”/“,$dirstring); $arr=explode(“/“,$dirstring); $temparr=array(); for($i=0;$i 检测结果: 以下分别为几次测试结果: 结果: 1160578850 1160578851 1160578855 1160578862 1160578863 这次双引号用了1秒,单引号用了4秒,hereDoc用了7秒,sprintf用了1秒。 结果: 1160578710 1160578711 1160578715 1160578722 1160578722 这次双引号用了1秒,单引号用了4秒,hereDoc用了7秒,sprintf用了0秒(我想是不到1秒)。 结果: 1160578773 1160578775 1160578779 1160578786 1160578787 这次双引号用了2秒,单引号用了4秒,hereDoc用了7秒,sprintf用了1秒。 三次汇总,是sprintf最快,heredoc最慢。双引号要比单引号快,这个我想不通,不知道为什么?明明双引号还要做替换,为什么却还更慢? 但是根据PHP.net上的结果,应该是单引号最快,双引号其次,heredoc第三,sprintf最慢。是不是我的代码有问题?谁能告诉我一下? 很丢人的说 俺用错了sprintf….. 怪不得那么快.关于sprintf的取消…
我后来查了一下,确实是双引号最快,单引号其次,Heredoc最慢。是我当时记错了。