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 相关文章推荐
PDO版本问题 Invalid parameter number: no parameters were bound
Jan 06 PHP
基于python发送邮件的乱码问题的解决办法
Apr 25 PHP
linux命令之调试工具strace的深入分析
Jun 03 PHP
解析php开发中的中文编码问题
Aug 08 PHP
PHP中的use关键字概述
Jul 23 PHP
PHP实现多文件上传的方法
Jul 08 PHP
php去掉文件前几行的方法
Jul 29 PHP
PHP之十六个魔术方法详细介绍
Nov 01 PHP
Ajax+PHP实现的模拟进度条功能示例
Feb 11 PHP
PHP添加文字水印或图片水印的水印类完整源代码与使用示例
Mar 18 PHP
php和nginx交互实例讲解
Sep 24 PHP
浅谈laravel5.5 belongsToMany自身的正确用法
Oct 17 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
用PHP实现的生成静态HTML速度快类库
2007/03/31 PHP
php GeoIP的使用教程
2011/03/09 PHP
php中读写文件与读写数据库的效率比较分享
2013/10/19 PHP
php实现的任意进制互转类分享
2015/07/07 PHP
使用laravel的Eloquent模型如何获取数据库的指定列
2019/10/17 PHP
在AngularJS中使用AJAX的方法
2015/06/17 Javascript
jquery密码强度校验
2015/12/02 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
js日期相关函数dateAdd,dateDiff,dateFormat等介绍
2016/09/24 Javascript
JS实现鼠标移上去显示图片或微信二维码
2016/12/14 Javascript
利用SpringMVC过滤器解决vue跨域请求的问题
2018/02/10 Javascript
Vue子组件向父组件通信与父组件调用子组件中的方法
2018/06/22 Javascript
JavaScript 对引擎、运行时、调用堆栈的概述理解
2018/10/22 Javascript
jquery图片预览插件实现方法详解
2019/07/18 jQuery
解决elementUI 切换tab后 el_table 固定列下方多了一条线问题
2020/07/19 Javascript
前端开发基础javaScript的六大作用
2020/08/06 Javascript
vant-ui框架的一个bug(解决切换后onload不触发)
2020/11/11 Javascript
vue监听键盘事件的相关总结
2021/01/29 Vue.js
Python入门篇之条件、循环
2014/10/17 Python
Python常用模块介绍
2014/11/21 Python
python脚本设置超时机制系统时间的方法
2016/02/21 Python
Python编程实现粒子群算法(PSO)详解
2017/11/13 Python
对numpy 数组和矩阵的乘法的进一步理解
2018/04/04 Python
Python中asyncio模块的深入讲解
2019/06/10 Python
在pyqt5中QLineEdit里面的内容回车发送的实例
2019/06/21 Python
Python中join()函数多种操作代码实例
2020/01/13 Python
详解Anaconda安装tensorflow报错问题解决方法
2020/11/01 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
网站性能延迟加载图像的五种技巧(小结)
2020/08/13 HTML / CSS
英国名牌服装购物网站:OD’s Designer
2019/09/02 全球购物
室内设计实习自我鉴定
2013/09/25 职场文书
财务总监管理岗位职责
2014/03/08 职场文书
商务英语专业求职信
2014/06/26 职场文书
教师四风对照检查材料思想汇报
2014/09/17 职场文书
2014年派出所工作总结
2014/11/21 职场文书
国际贸易实训总结
2015/08/03 职场文书