文档章节

10个典型实用的PHP代码片段

snowing1990
 snowing1990
发布于 2016/04/15 15:27
字数 868
阅读 7
收藏 1

本文将介绍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 = '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);

四、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');

五、强制下载文件

$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 = 'http://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);

十、检查网站是否宕机


  
  
  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. if (Visit("http://www.google.com")) 

  18. echo "Website OK"."n"

  19. else 

  20. echo "Website DOWN";


本文转载自:http://developer.51cto.com/art/201510/493226.htm

snowing1990
粉丝 4
博文 90
码字总数 2952
作品 0
程序员
私信 提问
33个超级有用必须要收藏的PHP代码样例

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

代码技巧
2015/09/15
0
0
11个实用的Apache .htaccess配置

Apache的.htaccess文件是服务器的心脏,控制着网站访问的各种规则。这里提供了10个不错的.htaccess片段能够帮助你优化你的网站,包括重定向、性能、可用性等等! 1. 强制后缀反斜杠 在URL的尾...

lixiaokai2008
2014/01/21
262
0
一言不合就学习:PHP优秀学习文章资料汇总整理

发现一个不错的网站,DevStore,移动互联网企业运营解决方案整合平台,产品前期-设计阶段-开发测试-推广阶段-运维运营,各个阶段都有涉及。 下面整理一些针对包括程序员、运营、设计师等在内...

FrancisSoung
2016/08/25
0
0
不可错过的10个超棒jQuery表单操作代码片段

日期:2012-11-27 来源:GBin1.com 全部在线演示 jQuery 绝对是一个伟大的开源javascript类库,是帮助我们快速和高效开发前端应用的利器。可能大家在日常的开发过程中常常会处理表单相关的 ...

gbin1
2012/11/27
8
0
10个最好用的在线编译工具

1、ideone 可以在线编译C/C++,Java,PHP,Python以及其他40多种编程语言。 2、codepad 你可以直接复制代码到里面,然后提交运行,就会生产一个url链接,将此链接发给你的好友来求助 3、com...

一只小YU儿
2017/04/17
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Java 中的 String 有没有长度限制

转载: https://juejin.im/post/5d53653f5188257315539f9a String是Java中很重要的一个数据类型,除了基本数据类型以外,String是被使用的最广泛的了,但是,关于String,其实还是有很多东西...

低至一折起
20分钟前
8
0
OpenStack 简介和几种安装方式总结

OpenStack :是一个由NASA和Rackspace合作研发并发起的,以Apache许可证授权的自由软件和开放源代码项目。项目目标是提供实施简单、可大规模扩展、丰富、标准统一的云计算管理平台。OpenSta...

小海bug
昨天
9
0
DDD(五)

1、引言 之前学习了解了DDD中实体这一概念,那么接下来需要了解的就是值对象、唯一标识。值对象,值就是数字1、2、3,字符串“1”,“2”,“3”,值时对象的特征,对象是一个事物的具体描述...

MrYuZixian
昨天
6
0
解决Mac下VSCode打开zsh乱码

1.乱码问题 iTerm2终端使用Zsh,并且配置Zsh主题,该主题主题需要安装字体来支持箭头效果,在iTerm2中设置这个字体,但是VSCode里这个箭头还是显示乱码。 iTerm2展示如下: VSCode展示如下: 2...

HelloDeveloper
昨天
9
0
常用物流快递单号查询接口种类及对接方法

目前快递查询接口有两种方式可以对接,一是和顺丰、圆通、中通、天天、韵达、德邦这些快递公司一一对接接口,二是和快递鸟这样第三方集成接口一次性对接多家常用快递。第一种耗费时间长,但是...

程序的小猿
昨天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部