10个超级有用,必须收藏的PHP代码样例

10个超级有用,必须收藏的PHP代码样例

作为一个正常的程序员,会好几种语言是十分正常的,相信大部分程序员也都会编写几句PHP程序,如果是WEB程序员,PHP一定是必需的,甚至你没用它开发过大型软件项目,也一定多少了解它的语法。

尽管PHP经常被人诟病,被人贬低,被人当玩笑开,事实证明,PHP是全世界网站开发中使用率最高的编程语言。PHP最大的缺点是太简单,语法不严谨,框架体系很弱,,但这也是它最大的优点,一个有点编程背景的普通人,只需要学习PHP半天时间,就可以上手开始开发web应用了。

网上有人总结了几种编程语言的特点,我觉得也挺有道理的:

PHP就是:Quick and Dirty
Java就是:Beauty and Slowly
Ruby就是:Quick and Beauty
python就是:Quick and Simple

在这些PHP的流行普及中,网上总结出来了很多实用的PHP代码片段,这些代码片段在当你遇到类似的问题时,只是过去就可以使用,非常的高效,非常的省时省力。将这些程序员前辈总结出的优秀代码放到自己的摘要中,是一个善于学习的程序员的好习惯。

一,黑名单过滤

函数is_spam($ text,$ file,$ split =':',$ regex = false){ 
    $ handle = fopen($ file,'rb'); 
    $ contents = fread($ handle,filesize($ file)); 
    fclose($ handle); 
    $ lines = explode(“ n”,$ contents); 
    $ arr = array(); 
    foreach(以$ line作为$ line){ 
        list($ word,$ count)=爆炸($ split,$ line); 
        如果($ regex) 
            $ arr [$ word] = $ count; 
        其他 
            $ arr [preg_quote($ word)] = $ count; 
    } 
    preg_match_all(“〜” .implode('|',array_keys($ arr))。“〜”,$ text,$ matches); 
    $ temp = array(); 
    foreach($ matches [0] as $ match){ 
        if(!in_array($ match,$ temp)){ 
            $ temp [$ match] = $ temp [$ match] + 1; 
            if($ temp [$ match]> = $ arr [$ word]) 
                返回true; 
        } 
    } 
    返回false; 
} 

$ file ='spam.txt'; 
$ str ='此字符串包含猫,狗字'; 
if(is_spam($ str,$ file)) 
    回显“这是垃圾邮件”; 
其他 
    回显“这不是垃圾邮件”;
ab:3
狗:3
猫:2
猴子:2

二,随机颜色生成器

函数randomColor(){ 
    $ str ='#'; 
    for($ i = 0; $ i <6; $ i ++){ 
        $ randNum = rand(0,15); 
        切换($ randNum){ 
            情况10:$ randNum ='A'; 打破;
            情况11:$ randNum ='B'; 打破;
            情况12:$ randNum ='C'; 打破;
            情况13:$ randNum ='D'; 打破;
            情况14:$ randNum ='E'; 打破;
            情况15:$ randNum ='F'; 打破;
        } 
        $ str。= $ randNum; 
    } 
    返回$ str; 
} 
$ color = randomColor();

三,从网络下载文件

set_time_limit(0); 
//支持所有文件类型 
// URL: 
$ url ='http://somsite.com/some_video.flv'; 
$ pi = pathinfo($ url); 
$ ext = $ pi ['extension']; 
$ name = $ pi ['filename']; 

//创建一个新的cURL资源 
$ ch = curl_init(); 

//设置URL和其他适当的选项 
curl_setopt($ ch,CURLOPT_URL,$ url); 
curl_setopt($ ch,CURLOPT_HEADER,false); 
curl_setopt($ ch,CURLOPT_BINARYTRANSFER,true); 
curl_setopt($ ch,CURLOPT_AUTOREFERER,true); 
curl_setopt($ ch,CURLOPT_FOLLOWLOCATION,true); 
curl_setopt($ ch,CURLOPT_RETURNTRANSFER,true); 

//获取URL并将其传递给浏览器 
$ opt = curl_exec($ ch); 

//关闭cURL资源,并释放系统资源 
curl_close($ ch); 

$ saveFile = $ name。'。'。$ ext; 
if(preg_match(“ / [^ 0-9a-z ._-] / i”,$ saveFile)) 
    $ saveFile = md5(microtime(true))。'。'。$ ext; 

$ handle = fopen($ saveFile,'wb'); 
fwrite($ handle,$ opt); 
fclose($ handle);

四,Alexa / Google页面排名

函数page_rank($ page,$ type ='alexa'){ 
    开关($ type){ 
        案例“ alexa”: 
            $ url ='http://alexa.com/siteinfo/'; 
            $ handle = fopen($ url。$ page,'r'); 
        打破; 
        案例“ google”: 
            $ url ='http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:'; 
            $ handle = fopen($ url.'http://'.$page,'r'); 
        打破; 
    } 
    $ content = stream_get_contents($ handle); 
    fclose($ handle); 
    $ content = preg_replace(“〜(n | t | ss +)〜”,“,$ content); 
    开关($ type){ 
        案例“ alexa”: 
            if(preg_match('〜<div class =“ data(down | up)”> <img。+?>(。+?)</ div>〜im',$ content,$ matches)){ 
                返回$ matches [2]; 
            }其他{ 
                返回FALSE; 
            } 
        打破; 
        案例“ google”: 
            $ rank = explode(':',$ content); 
            if($ rank [2]!='') 
                返回$ rank [2]; 
            其他 
                返回FALSE; 
        打破; 
        默认: 
            返回FALSE; 
        打破; 
    } 
} 
// Alexa网页排名: 
回声'Alexa排名:'.page_rank('techug.com'); 
回声
'; 
// Google Page Rank 
回声“谷歌排名:”。page_rank(“ techug.com”,“谷歌”);

五,强制下载文件

$ filename = $ _GET ['file']; //从URL获取文件ID
//查询文件ID 
$ query = sprintf(“ SELECT * FROM tableName WHERE id ='%s'”,mysql_real_escape_string($ filename)); 
$ sql = mysql_query($ query); 
if(mysql_num_rows($ sql)> 0){ 
    $ row = mysql_fetch_array($ sql); 
    //设置一些标题 
    header(“ Pragma:public”); 
    header(“ Expires:0”); 
    header(“ Cache-Control:必须重新验证,post-check = 0,pre-check = 0”); 
    标头(“内容类型:应用程序/强制下载”); 
    header(“ Content-Type:application / octet-stream”); 
    标头(“内容类型:应用程序/下载”); 
    header(“ Content-Disposition:附件; filename =”。basename($ row ['FileName'])。“;”); 
    header(“ Content-Transfer-Encoding:binary”); 
    header(“ Content-Length:” .filesize($ row ['FileName']))); 

    @readfile($ row ['FileName']); 
    退出(0); 
}其他{ 
    header(“ Location:/”); 
    出口; 
}

六,通过电子邮件显示用户的Gravatar头像

$ gravatar_link ='http://www.gravatar.com/avatar/'。md5($ comment_author_email)。'?s = 32';
  回声'<img src =“'。$ gravatar_link。'” />';

七,通过cURL获取RSS订阅数

$ ch = curl_init();
curl_setopt($ ch,CURLOPT_URL,'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id = 7qkrmib4r9rscbplq5qgadiiq4');
curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1);
curl_setopt($ ch,CURLOPT_CONNECTTIMEOUT,2);
$ content = curl_exec($ ch);
$ subscribers = get_match('/ circulation =“(。*)” / isU',$ content);
curl_close($ ch);

八,时间差异计算函数

功能前($时间)
{
   $ periods = array(“ second”,“ min”,“ hour”,“ day”,“ week”,“ month”,“ year”,“ decade”);
   $ lengths = array(“ 60”,“ 60”,“ 24”,“ 7”,“ 4.35”,“ 12”,“ 10”);

   $ now = time();

       $ difference = $ now-$ time;
       $ tense =“ ago”;

   for($ j = 0; $ difference> = $ lengths [$ j] && $ j <count($ lengths)-1; $ j ++){
       $ difference / = $ lengths [$ j];
   }

   $ difference = round($ difference);

   if($ difference!= 1){
       $ periods [$ j]。=“” s“;
   }

   返回“ $ difference $ periods [$ j]'ago'”;
}

九,裁剪图片

$ filename =“” test.jpg“;
list($ w,$ h,$ type,$ attr)= getimagesize($ filename);
$ src_im = imagecreatefromjpeg($ filename);

$ src_x ='0'; //开始x
$ src_y ='0'; //从y开始
$ src_w ='100'; //宽度
$ src_h ='100'; //高度
$ dst_x ='0'; //目的地x
$ dst_y ='0'; //目的地y

$ dst_im = imagecreatetruecolor($ src_w,$ src_h);
$ white = imagecolorallocate($ dst_im,255,255,255);
imagefill($ dst_im,0,0,$ white);

imagecopy($ dst_im,$ src_im,$ dst_x,$ dst_y,$ src_x,$ src_y,$ src_w,$ src_h);

header(“ Content-type:image / png”);
imagepng($ dst_im);
imagedestroy($ dst_im);

十,检查网站是否停机机

函数Visit($ url){
       $ agent =“ Mozilla / 4.0(compatible; MSIE 5.01; Windows NT 5.0)”; $ ch = curl_init();
       curl_setopt($ ch,CURLOPT_URL,$ url);
       curl_setopt($ ch,CURLOPT_USERAGENT,$ agent);
       curl_setopt($ ch,CURLOPT_RETURNTRANSFER,1);
       curl_setopt($ ch,CURLOPT_VERBOSE,false);
       curl_setopt($ ch,CURLOPT_TIMEOUT,5);
       curl_setopt($ ch,CURLOPT_SSL_VERIFYPEER,FALSE);
       curl_setopt($ ch,CURLOPT_SSLVERSION,3);
       curl_setopt($ ch,CURLOPT_SSL_VERIFYHOST,FALSE);
       $ page = curl_exec($ ch);
       //回显curl_error($ ch);
       $ httpcode = curl_getinfo($ ch,CURLINFO_HTTP_CODE);
       curl_close($ ch);
       if($ httpcode> = 200 && $ httpcode <300)返回true;
       否则返回假;
}
如果(访问(“ http://www.google.com”))
       回显“网站确定”。“ n”;
其他
       回显“网站下载”;
点赞

发表评论

电子邮件地址不会被公开。 必填项已用*标注