PHP开发实战:10个典型实用的PHP代码片段
安安 2017-11-07 来源 :网络 阅读 884 评论 0

摘要:本篇PHP开发实战将介绍10个经常会用到的PHP代码片段,包括黑名单过滤、随机颜色生成器、从网上下载文件、Alexa/Google Page Rank、强制下载文件、用Email显示用户的Gravator头像、用cURL获取RSS订阅数、截取图片、检查网站是否宕机。

本篇PHP开发实战将介绍10个经常会用到的PHP代码片段,包括黑名单过滤、随机颜色生成器、从网上下载文件、Alexa/Google Page Rank、强制下载文件、用Email显示用户的Gravator头像、用cURL获取RSS订阅数、截取图片、检查网站是否宕机。

一、黑名单过滤

function 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($lines as $line){ list($word, $count) = explode($split, $line); if($regex)

$arr[$word] = $count; else 

$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]) return true;

}

} return false;

}

 

$file = 'spam.txt';

$str = 'This string has cat, dog word'; if(is_spam($str, $file)) echo 'this is spam'; else echo 'this is not spam';

 

ab:3 

dog:3 

cat:2 

monkey:2

二、随机颜色生成器

function randomColor() {

    $str = '#';

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

        $randNum = rand(0 , 15);

        switch ($randNum) {

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

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

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

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

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

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

        }

        $str .= $randNum;

    }

    return $str;

}

$color = randomColor();

三、从网上下载文件

set_time_limit(0);

// Supports all file types

// URL Here: $url = '//somsite.com/some_video.flv'; $pi = pathinfo($url); $ext = $pi['extension']; $name = $pi['filename'];

 

// create a new cURL resource $ch = curl_init();

 

// set URL and other appropriate options

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);

 

// grab URL and pass it to the browser $opt = curl_exec($ch);

 

// close cURL resource, and free up system resources

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

function page_rank($page, $type = 'alexa'){ switch($type){ case 'alexa':

$url = '//alexa.com/siteinfo/';

$handle = fopen($url.$page, 'r'); break; case 'google':

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

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

}

$content = stream_get_contents($handle);

fclose($handle);

$content = preg_replace("~(n|t|ss+)~",'', $content); switch($type){ case 'alexa': if(preg_match('~<div class="data (down|up)"><img.+?>(.+?) </div>~im',$content,$matches)){ return $matches[2];

}else{ return FALSE;

} break; case 'google':

$rank = explode(':',$content); if($rank[2] != '') return $rank[2]; else return FALSE; break; default: return FALSE; break;

}

} // Alexa Page Rank: echo 'Alexa Rank: '.page_rank('techug.com'); echo ' '; // Google Page Rank echo 'Google Rank: '.page_rank('techug.com', 'google');

五、强制下载文件

$filename = $_GET['file']; //Get the fileid from the URL // Query the file 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); // Set some headers

header("Pragma: public");

header("Expires: 0");

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

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

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

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

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

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

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

 

@readfile($row['FileName']); exit(0);

}else{

header("Location: /"); exit;

}

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

$gravatar_link = '//www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32'; echo '<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);

 

八、时间差异计算

function ago($time)

{

   $periods = array("second", "minute", "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";

}

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

}

九、截取图片

$filename= "test.jpg";

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

$src_im = imagecreatefromjpeg($filename);

 

$src_x = '0'; // begin x

$src_y = '0'; // begin y

$src_w = '100'; // width

$src_h = '100'; // height

$dst_x = '0'; // destination x

$dst_y = '0'; // destination 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);

十、检查网站是否宕机

function 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);

//echo curl_error($ch); $httpcode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch); if($httpcode>=200 && $httpcode<300) return true; else return false;

} if (Visit("//www.google.com")) echo "Website OK"."n"; else echo "Website DOWN";

 

希望这篇PHP程文章可以帮助到你。总之,同学们,你想要的职坐标PHP频道都能找到!

本文由 @安安 发布于职坐标。未经许可,禁止转载。
喜欢 | 1 不喜欢 | 0
看完这篇文章有何感觉?已经有1人表态,100%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程