10个超级有用值得收藏的PHP代码片段_php技巧_脚本之家

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

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

一、黑名单过滤

澳门新浦京娱乐游戏 1

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

 代码如下

一、黑名单过滤

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

复制代码 代码如下:PHP 就是: Quick and
DirtyJava 就是: Beauty and SlowlyRuby 就是: Quick and Beautypython
就是: Quick and Simple

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

二、随机颜色生成器

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

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

$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

三、从网上下载文件

set_time_limit(0); 
// Supports all file types 
// URL Here: 
$url = 'http://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);

一、黑名单过滤复制代码
代码如下:function is_spam($text, $file, $split = ‘:’, $regex = false){
$handle = fopen; $contents = fread($handle, filesize; fclose; $lines =
explode; $arr = array(); foreach{ list = explode; if $arr[$word] =
$count; else $arr[preg_quote] = $count; }
preg_match_all(“~”.implode).”~”, $text, $matches); $temp = array();
foreach($matches[0] as $match){ if(!in_array{ $temp[$match] =
$temp[$match] + 1; if($temp[$match] >= $arr[澳门新浦京娱乐游戏,$word]) return
true; } } return false; }

二、随机颜色生成器

四、Alexa/Google Page Rank

function page_rank($page, $type = 'alexa'){ 
switch($type){ 
case 'alexa': 
$url = 'http://alexa.com/siteinfo/'; 
$handle = fopen($url.$page, 'r'); 
break; 
case 'google': 
$url = 'http://google.com/search?client=navclient-auto&ch=6-1484155081&features=Rank&q=info:'; 
$handle = fopen($url.'http://'.$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');

$file = ‘spam.txt’; $str = ‘This string has cat, dog word’; if echo
‘this is spam’; else echo ‘this is not
spam’;ab:3dog:3cat:2monkey:2二、随机颜色生成器复制代码 代码如下:function randomColor() { $str
= ‘#’; for($i = 0 ; $i < 6 ; $i++) { $randNum = rand; switch { 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; // Supports
all file types // URL Here: $url = ”;
$pi = pathinfo; $ext = $pi[‘extension’]; $name = $pi[‘filename’];

 代码如下

五、强制下载文件

$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; 
}

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

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

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

$gravatar_link = 'http://www.gravatar.com/avatar/' . md5($comment_author_email) . '?s=32'; 
echo '<img src="'%20.%20$gravatar_link%20.%20'" />';

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

三、从网上下载文件

七、用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' "; 
}

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

 代码如下

九、截取图片

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

// close cURL resource, and free up system resources curl_close;

set_time_limit(0);
// Supports all file types
// URL Here:
$url = ”;
$pi = pathinfo($url);
$ext = $pi[‘extension’];
$name = $pi[‘filename’];

十、检查网站是否宕机

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("http://www.google.com")) 
echo "Website OK"."n"; 
else 
echo "Website DOWN";

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

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

$handle = fopen; fwrite; fclose;四、Alexa/Google Page Rank

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

function page_rank($page, $type = ‘alexa’){ switch{ case ‘alexa’: $url
= ”; $handle = fopen; break; case ‘google’:
$url =
‘:’;
$handle = fopen($url.’, ‘r’); break; } $content =
stream_get_contents; fclose; $content = preg_replace~”,”, $content);
switch{ case ‘alexa’: if(preg_match(‘~

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

~im’,$content,$matches)){ return $matches[2]; }else{ return FALSE; }
break; case ‘google’: $rank = explode; if return $rank[2]; else return
FALSE; break; default: return FALSE; break; } } // Alexa Page Rank: echo
‘Alexa Rank: ‘.page_rank; echo ”; // Google Page Rank echo ‘Google
Rank: ‘.page_rank(‘techug.com’, ‘google’);

// close cURL resource, and free up system resources
curl_close($ch);

五、强制下载文件复制代码
代码如下:$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; $sql = mysql_query; if > 0){ $row
= mysql_fetch_array; // Set some headers header; header;
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.”;”); header(“Content-Transfer-Encoding: binary”);
header(“Content-Length: “.filesize;

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

@readfile; exit; }else{ header; exit;
}六、通过Email显示用户的Gravatar头像复制代码 代码如下:$gravatar_link =
” . md5($comment_author_email) .
‘?s=32’; echo
澳门新浦京娱乐游戏 2‘;七、通过cURL获取RSS订阅数复制代码 代码如下:$ch =
curl_init();curl_setopt($ch,CURLOPT_URL,’
= curl_exec;$subscribers =
get_match”/isU’,$content);curl_close;八、时间差异计算函数复制代码 代码如下:function ago{ $periods =
array(“second”, “minute”, “hour”, “day”, “week”, “month”, “year”,
“decade”); $lengths = array(“60″,”60″,”24″,”7″,”4.35″,”12″,”10”);

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

$now = time();

四、Alexa/Google Page Rank

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

 代码如下

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

function page_rank($page, $type = ‘alexa’){
    switch($type){
        case ‘alexa’:
            $url = ”;
            $handle = fopen($url.$page, ‘r’);
        break;
        case ‘google’:
            $url =
‘:’;
            $handle = fopen($url.’, ‘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’);

$difference = round;

五、强制下载文件

if { $periods[$j].= “s”; }

 代码如下

return “$difference $periods[$j] ‘ago’ “;}九、裁剪图片复制代码 代码如下:$filename= “test.jpg”;list =
getimagesize;$src_im = imagecreatefromjpeg;

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

$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

    @readfile($row[‘FileName’]);
    exit(0);
}else{
    header(“Location: /”);
    exit;
}
六、用Email显示用户的Gravator头像

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

$gravatar_link = ” .
md5($comment_author_email) . ‘?s=32’;
 echo ‘<img src=”‘%20.%20$gravatar_link%20.%20′” />’;

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

七、用cURL获取RSS订阅数

header(“Content-type:
image/png”);imagepng;imagedestroy;十、检查网站是否宕机复制代码 代码如下:function Visit{ $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;
//echo curl_error; $httpcode = curl_getinfo($ch,
CURLINFO_HTTP_CODE); curl_close; if($httpcode>=200 &&
$httpcode<300) return true; else return false;}if
(Visit(“”)) echo “Website OK”.”n”;else echo
“Website DOWN”;

 代码如下

$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(“”))
       echo “Website OK”.”n”;
else
       echo “Website DOWN”;

发表评论

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