首页 > 大数据 > 正文

10个必须收藏的PHP代码样例

2015-08-10 13:42:46  来源:51CTO

摘要:黑名单过滤、随机颜色生成器、从网上下载文件、Alexa/Google Page Rank、强制下载文件、用Email显示用户的Gravator头像、用cURL获取RSS订阅数、截取图片、检查网站是否宕机。
关键词: PHP代码样例

    一、黑名单过滤


    1.function is_spam($text, $file, $split = ':', $regex = false){


    2.    $handle = fopen($file, 'rb');


    3.    $contents = fread($handle, filesize($file));


    4.    fclose($handle);


    5.    $lines = explode("n", $contents);


    6.$arr = array();


    7.foreach($lines as $line){


    8.list($word, $count) = explode($split, $line);


    9.if($regex)


    10.$arr[$word] = $count;


    11.else


    12.$arr[preg_quote($word)] = $count;


    13.}


    14.preg_match_all("~".implode('|', array_keys($arr))。"~", $text, $matches);


    15.$temp = array();


    16.foreach($matches[0] as $match){


    17.if(!in_array($match, $temp)){


    18.$temp[$match] = $temp[$match] + 1;


    19.if($temp[$match] >= $arr[$word])


    20.return true;


    21.}


    22.}


    23.return false;


    24.}


    25.


    26.$file = 'spam.txt';


    27.$str = 'This string has cat, dog word';


    28.if(is_spam($str, $file))


    29.echo 'this is spam';


    30.else


    31.echo 'this is not spam';


    32.


    33.ab:3


    34.dog:3


    35.cat:2


    36.monkey:2


    二、随机颜色生成器


    1.function randomColor() {


    2.    $str = '#';


    3.    for($i = 0 ; $i < 6 ; $i++) {


    4.        $randNum = rand(0 , 15);


    5.        switch ($randNum) {


    6.            case 10: $randNum = 'A'; break;


    7.            case 11: $randNum = 'B'; break;


    8.            case 12: $randNum = 'C'; break;


    9.            case 13: $randNum = 'D'; break;


    10.            case 14: $randNum = 'E'; break;


    11.            case 15: $randNum = 'F'; break;


    12.        }


    13.        $str .= $randNum;


    14.    }


    15.    return $str;


    16.}


    17.$color = randomColor();


    三、从网上下载文件


    1.set_time_limit(0);


    2.// Supports all file types


    3.// URL Here:


    4.$url = 'http://somsite.com/some_video.flv';


    5.$pi = pathinfo($url);


    6.$ext = $pi['extension'];


    7.$name = $pi['filename'];


    8.


    9.// create a new cURL resource


    10.$ch = curl_init();


    11.


    12.// set URL and other appropriate options


    13.curl_setopt($ch, CURLOPT_URL, $url);


    14.curl_setopt($ch, CURLOPT_HEADER, false);


    15.curl_setopt($ch, CURLOPT_BINARYTRANSFER, true);


    16.curl_setopt($ch, CURLOPT_AUTOREFERER, true);


    17.curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);


    18.curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);


    19.


    20.// grab URL and pass it to the browser


    21.$opt = curl_exec($ch);


    22.


    23.// close cURL resource, and free up system resources


    24.curl_close($ch);


    25.


    26.$saveFile = $name.'.'.$ext;


    27.if(preg_match("/[^0-9a-z._-]/i", $saveFile))


    28.$saveFile = md5(microtime(true))。'.'.$ext;


    29.


    30.$handle = fopen($saveFile, 'wb');


    31.fwrite($handle, $opt);


    32.fclose($handle);


    四、Alexa/Google Page Rank


    1.function page_rank($page, $type = 'alexa'){


    2.switch($type){


    3.case 'alexa':


    4.$url = 'http://alexa.com/siteinfo/';


    5.$handle = fopen($url.$page, 'r');


    6.break;


    7.case 'google':


    8.$url = 'http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:';


    9.$handle = fopen($url.'http://'.$page, 'r');


    10.break;


    11.}


    12.$content = stream_get_contents($handle);


    13.fclose($handle);


    14.$content = preg_replace("~(n|t|ss+)~",'', $content);


    15.switch($type){


    16.case 'alexa':


    17.if(preg_match('~<div class="data (down|up)"><img.+?>(。+?) </div>~im',$content,$matches)){


    18.return $matches[2];


    19.}else{


    20.return FALSE;


    21.}


    22.break;


    23.case 'google':


    24.$rank = explode(':',$content);


    25.if($rank[2] != '')


    26.return $rank[2];


    27.else


    28.return FALSE;


    29.break;


    30.default:


    31.return FALSE;


    32.break;


    33.}


    34.}


    35.// Alexa Page Rank:


    36.echo 'Alexa Rank: '.page_rank('techug.com');


    37.echo ' ';


    38.// Google Page Rank


    39.echo 'Google Rank: '.page_rank('techug.com', 'google');


    五、强制下载文件


    1.$filename = $_GET['file']; //Get the fileid from the URL


    2.// Query the file ID


    3.$query = sprintf("SELECT * FROM tableName WHERE id = '%s'",mysql_real_escape_string($filename));


    4.$sql = mysql_query($query);


    5.if(mysql_num_rows($sql) > 0){


    6.$row = mysql_fetch_array($sql);


    7.// Set some headers


    8.header("Pragma: public");


    9.header("Expires: 0");


    10.header("Cache-Control: must-revalidate, post-check=0, pre-check=0");


    11.header("Content-Type: application/force-download");


    12.header("Content-Type: application/octet-stream");


    13.header("Content-Type: application/download");


    14.header("Content-Disposition: attachment; filename=".basename($row['FileName'])。";");


    15.header("Content-Transfer-Encoding: binary");


    16.header("Content-Length: ".filesize($row['FileName']));


    17.


    18.@readfile($row['FileName']);


    19.exit(0);


    20.}else{


    21.header("Location: /");


    22.exit;


    23.}


    六、用Email显示用户的Gravator头像


    1.$gravatar_link = 'http://www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32';


    2.echo '<img src="' . $gravatar_link . '" />';


    七、用cURL获取RSS订阅数


    1.$ch = curl_init();


    2.curl_setopt($ch,CURLOPT_URL,'https://feedburner.google.com/api/awareness/1.0/GetFeedData?id=7qkrmib4r9rscbplq5qgadiiq4');


    3.curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);


    4.curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,2);


    5.$content = curl_exec($ch);


    6.$subscribers = get_match('/circulation="(。*)"/isU',$content);


    7.curl_close($ch);


    8.


    9.八、时间差异计算


    10.


    11.function ago($time)


    12.{


    13.   $periods = array("second", "minute", "hour", "day", "week", "month", "year", "decade");


    14.$lengths = array("60","60","24","7","4.35","12","10");


    15.


    16.$now = time();


    17.


    18.$difference = $now - $time;


    19.$tense = "ago";


    20.


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


    22.$difference /= $lengths[$j];


    23.}


    24.


    25.$difference = round($difference);


    26.


    27.if($difference != 1) {


    28.$periods[$j].= "s";


    29.}


    30.


    31.return "$difference $periods[$j] 'ago' ";


    32.}


    九、截取图片


    1.$filename= "test.jpg";


    2.list($w, $h, $type, $attr) = getimagesize($filename);


    3.$src_im = imagecreatefromjpeg($filename);


    4.


    5.$src_x = '0'; // begin x


    6.$src_y = '0'; // begin y


    7.$src_w = '100'; // width


    8.$src_h = '100'; // height


    9.$dst_x = '0'; // destination x


    10.$dst_y = '0'; // destination y


    11.


    12.$dst_im = imagecreatetruecolor($src_w, $src_h);


    13.$white = imagecolorallocate($dst_im, 255, 255, 255);


    14.imagefill($dst_im, 0, 0, $white);


    15.


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


    17.


    18.header("Content-type: image/png");


    19.imagepng($dst_im);


    20.imagedestroy($dst_im);


    十、检查网站是否宕机


    1.function Visit($url){


    2.       $agent = "Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)";$ch=curl_init();


    3.curl_setopt ($ch, CURLOPT_URL,$url );


    4.curl_setopt($ch, CURLOPT_USERAGENT, $agent);


    5.curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1);


    6.curl_setopt ($ch,CURLOPT_VERBOSE,false);


    7.curl_setopt($ch, CURLOPT_TIMEOUT, 5);


    8.curl_setopt($ch,CURLOPT_SSL_VERIFYPEER, FALSE);


    9.curl_setopt($ch,CURLOPT_SSLVERSION,3);


    10.curl_setopt($ch,CURLOPT_SSL_VERIFYHOST, FALSE);


    11.$page=curl_exec($ch);


    12.//echo curl_error($ch);


    13.$httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);


    14.curl_close($ch);


    15.if($httpcode>=200 && $httpcode<300) return true;


    16.else return false;


    17.}


    18.if (Visit("http://www.google.com"))


    19.echo "Website OK"."n";


    20.else


    21.echo "Website DOWN";



第四十一届CIO班招生
国际CIO认证培训
首席数据官(CDO)认证培训
责编:tqy

免责声明:本网站(http://www.ciotimes.com/)内容主要来自原创、合作媒体供稿和第三方投稿,凡在本网站出现的信息,均仅供参考。本网站将尽力确保所提供信息的准确性及可靠性,但不保证有关资料的准确性及可靠性,读者在使用前请进一步核实,并对任何自主决定的行为负责。本网站对有关资料所引致的错误、不确或遗漏,概不负任何法律责任。
本网站刊载的所有内容(包括但不仅限文字、图片、LOGO、音频、视频、软件、程序等)版权归原作者所有。任何单位或个人认为本网站中的内容可能涉嫌侵犯其知识产权或存在不实内容时,请及时通知本站,予以删除。