1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | /** * 删除指定目录 * * @param string $dirname 路径 * @return void */ function rmdir_rf($dirname) { if ($dirHandle = opendir($dirname)) { chdir($dirname); //该处很多地方都写$file = readdir($dirHandle)),当$file = 0时,函数失效 while (false !== ($file = readdir($dirHandle))) { if ($file == '.' || $file == '..') continue; if (is_dir($file))rmdir_rf($file); else unlink($file); } chdir('..'); rmdir($dirname); closedir($dirHandle); } } |
该函数在PHP手册中有人写过,但当while语句中的遍历写的有点小问题,在使用中发现函数失效,就随后记下来吧,好像一年多没更新过博客了,惭愧……
最近一直在做自己的图书站,分别使用过杰奇和读吧两套不同的系统,对于这两套系统也是又爱又恨,爱的是他们的功能强大,恨他们都同属没有开源精神的产物。呵呵,作为一名穷程序员,俺可以理解作者的苦衷,这里就不批判了。
年假期间,无事可做,翻看自己以前的采集代码,发现很多可以优化和提升的地方,就简单做了下优化,其中也使用了用户体验更加优秀的服务器推技术,这里简单的介绍下核心的函数:flush。
(全文 …)
1、pathinfo函数:
$name = 'http://www.wangchong.org/ad_banner-1199957657.gif';
$path_parts = pathinfo($name);
echo $path_parts['extension'];
?>
2、end函数:
$name = 'http://www.wangchong.org/ad_banner-1199957657.gif';
echo(end(explode(".",$name)));
?>
好的代码应被分成了多个部分,合适的库及函数调用,清楚的数据库结构,站点的每一个部分与其它部分都是相对独立的。
但是,这仍不是最好的。如果我可以重做,我将更多的关注于HTML层与数据层的分离,通过对象及清楚的函数库实现这一点。
优美的图形
我知道经理们喜欢用优美的图形及图表来描述它们,这将给我们留下最好的印象。用这种隐藏在一个结构后的想法,你可以把你的逻辑与外观分离,这意味着任何一个复杂的程序都可以用”API/Data Access Layer”来表述。
与其你把安全检测、更新的句子等放在HTML层中,不如把它们整体地放在你的API层里。而这个HTML层只含有简单的函数调用和返回的数组、对象或自定的其它什么,以及一些数据库的检索结果的集合等。
如果你这样做了,顶层将是非常的瘦小,你可以方便地创建及维护它。
如下的例子中,这个HTML接口中只有一些API层中的函数的直接调用,一些HTML工具库(它能生成一个弹出框等等),和一些从数据库抽象层中调用的数据库操作方法(你不需要绑定某一个特别的数据库)。
出处:天极网
采集器,通常又叫小偷程序,主要是用来抓取别人网页内容的。关于采集器的制作,其实并不难,就是远程打开要采集的网页,然后用正则表达式将需要的内容匹配出来,只要稍微有点正则表达式的基础,都能做出自己的采集器来的。
前几天做了个小说连载的程序,因为怕更新麻烦,顺带就写了个采集器,采集八路中文网的,功能比较简单,不能自定义规则,不过大概思路都在里面了,自定义规则可以自己来扩展。
用php来做采集器主要用到两个函数:file_get_contents()和preg_match_all(),前一个是远程读取网页内容的,不过只在php5以上的版本才能用,后一个是正则函数,用来提取需要的内容的。
下面就一步一步来讲功能实现。
(全文 …)
去年接触到PDO,也稍微了用了下。不过不熟悉,这次查看了手册,详细的看了看。手册上是英文的,顺便就翻译下。
PDO,全称PHP DATA OBJECTS,在PHP中定义了一个轻量级别的数据操作接口。在PHP5.1及其之后的版本中得到完全的支持。PDO,实现了事务、不同数据库之间的抽象。这是我最喜欢的原因。
安全PDO是非常简单的,也有很多文章,这里就不具体说了。
(全文 …)
< ?php
//获得当前的脚本网址
function get_php_url(){
if(!empty($_SERVER["REQUEST_URI"])){
$scriptName = $_SERVER["REQUEST_URI"];
$nowurl = $scriptName;
}else{
$scriptName = $_SERVER["PHP_SELF"];
if(empty($_SERVER["QUERY_STRING"])) $nowurl = $scriptName;
else $nowurl = $scriptName."?".$_SERVER["QUERY_STRING"];
}
return $nowurl;
}
//把全角数字转为半角数字
function GetAlabNum($fnum){
$nums = array("0","1","2","3","4","5","6","7","8","9");
$fnums = "0123456789";
for($i=0;$i<=9;$i++) $fnum = str_replace($nums[$i],$fnums[$i],$fnum);
$fnum = ereg_replace("[^0-9\.]|^0{1,}","",$fnum);
if($fnum=="") $fnum=0;
return $fnum;
}
(全文 …)