6个超实用的PHP代码片段


Posted in PHP onAugust 10, 2015

一、黑名单过滤

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

四、强制下载文件

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

五、截取图片

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

以上就是6个超实用的PHP代码样例,希望对大家学习PHP编程有所帮助,果断收藏吧

PHP 相关文章推荐
用php来检测proxy
Oct 09 PHP
解决163/sohu/sina不能够收到PHP MAIL函数发出邮件的问题
Mar 13 PHP
php学习之数据类型之间的转换代码
May 29 PHP
php中使用explode查找某个字符是否存在的方法
Jul 12 PHP
如何把php5.3版本升级到php5.4或者php5.5
Jul 31 PHP
图文详解phpstorm配置Xdebug进行调试PHP教程
Jun 13 PHP
PHP上传Excel文件导入数据到MySQL数据库示例
Oct 25 PHP
php中this关键字用法分析
Dec 07 PHP
完美解决php 导出excle的.csv格式的数据时乱码问题
Feb 18 PHP
PDO操作MySQL的基础教程(推荐)
Aug 18 PHP
PHP中PCRE正则解析代码详解
Apr 26 PHP
Yii2框架加载css和js文件的方法分析
May 25 PHP
解读PHP中的垃圾回收机制
Aug 10 #PHP
php实现多城市切换特效
Aug 09 #PHP
php基于双向循环队列实现历史记录的前进后退等功能
Aug 08 #PHP
PHP实现获取文件后缀名的几种常用方法
Aug 08 #PHP
PHP实现多维数组转字符串和多维数组转一维数组的方法
Aug 08 #PHP
Smarty使用自定义资源的方法
Aug 08 #PHP
SESSION存放在数据库用法实例
Aug 08 #PHP
You might like
smarty中先strip_tags过滤html标签后truncate截取文章运用
2010/10/25 PHP
php更新mysql后获取影响的行数发生异常解决方法
2013/03/28 PHP
分享下页面关键字抓取components.arrow.com站点代码
2014/01/30 PHP
php实现数组中出现次数超过一半的数字的统计方法
2018/10/14 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
JavaScript constructor和instanceof,JSOO中的一对欢喜冤家
2009/05/25 Javascript
js对象关系图 方便dom操作
2012/03/18 Javascript
js浮点数精确计算(加、减、乘、除)
2013/12/26 Javascript
jQuery中queue()方法用法实例
2014/12/29 Javascript
JS拖拽插件实现步骤
2015/08/03 Javascript
javascript数据结构之二叉搜索树实现方法
2015/11/25 Javascript
详解JavaScript函数
2015/12/01 Javascript
javascript超过容器后显示省略号效果的方法(兼容一行或者多行)
2016/07/14 Javascript
form表单转Json提交的方法(推荐)
2016/09/23 Javascript
Node.js中如何合并两个复杂对象详解
2016/12/31 Javascript
利用VS Code开发你的第一个AngularJS 2应用程序
2017/12/15 Javascript
从vue基础开始创建一个简单的增删改查的实例代码(推荐)
2018/02/11 Javascript
对layui中表单元素的使用详解
2018/08/15 Javascript
原生js通过一行代码实现简易轮播图
2019/06/05 Javascript
vue 使用高德地图vue-amap组件过程解析
2019/09/07 Javascript
基于javascript的无缝滚动动画1
2020/08/07 Javascript
python 正则式 概述及常用字符
2009/05/07 Python
Python合并字典键值并去除重复元素的实例
2016/12/18 Python
python绘制双柱形图代码实例
2017/12/14 Python
python实现自动发送邮件发送多人、群发、多附件的示例
2018/01/23 Python
将python图片转为二进制文本的实例
2019/01/24 Python
python定时复制远程文件夹中所有文件
2019/04/30 Python
Python 复平面绘图实例
2019/11/21 Python
Django表单提交后实现获取相同name的不同value值
2020/05/14 Python
canvas实现烟花的示例代码
2020/01/16 HTML / CSS
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
美国顶级品牌男士大码服装店:DXL
2017/08/30 全球购物
日本整理专家Marie Kondo的官方在线商店:KonMari
2020/06/29 全球购物
课改先进个人汇报材料
2014/01/26 职场文书
汉语言文学职业规划
2014/02/14 职场文书
2016年心理学教育培训学习心得体会
2016/01/12 职场文书