未来往事
放下浅薄和无知,靠的不是批判他人,而是自身的壮大和重建。 [2018年 第25周/共52周]
当前分类:PHP 第2页,本分类下收藏如下文章:PHP相关技术文章

php获取目录下的所有文件并按时间排序

php获取目录下的所有文件并按文件创建时间进行排序,php按文件创建/修改时间排序.
  1. function getFile($dir=''){  
  2.   $num=1;    //用来记录目录下的文件个数  
  3.   $dirname=
......
+阅读全文

php分卷备份恢复mysql数据库

本文主要阐述在大数据量下通过php程序分卷备份恢复mysql数据库的方法,代码已合并为一个文件,即为php页面版MySQL大数据库分卷备份恢复工具。由于时间关系,代码未做整理,结构相对混乱,如果你在该结构基础上做了整理也欢迎你反馈给我~~~

工具实现功能:
1.支持MySQL数据库按指定大小分卷备份和恢复;
2.支持单文件备份及下载
3.分卷备份存储在服务器端,可以直接上传导入

操作过程截图:
输入mysql链接配置信息
点击在新窗口中浏览此图片
当前权限链接下的数据库表信息
点击在新窗口中浏览此图片
选择导出备份方式
点击在新窗口中浏览此图片
导出备份选项
+阅读全文

php判断是否移动设备

php判断是否移动手机设备函数,php判断手机访问函数.

相对精准的判断方式:
  1. function is_Mobile_Device(){  
  2.  //获取ALL_HTTP全部的http信息  
  3.     $_SERVER['ALL_HTTP'] = isset($_SERVER['ALL_HTTP']) ? $_SERVER['ALL_HTTP'] : '';  
  4.     $mobile_browser = '0';  
  5.     if(preg_match('/(up.browser|up.link|mmp|symbian|smartphone|midp|wap|phone|iphone|ipad|ipod|android|xoom)/i'strtolower($_SERVER['HTTP_USER_AGENT'])))  
  6.         $mobile_browser++;  
  7.     if((isset($_SERVER['HTTP_ACCEPT'])) and (strpos(strtolower($_SERVER['HTTP_ACCEPT']),'application/vnd.wap.xhtml+xml') !== false))  
  8.         $mobile_browser++;  
  9.     if(isset($_SERVER['HTTP_X_WAP_PROFILE']))  
  10.         $mobile_browser++;  
  11.     if(isset($_SERVER['HTTP_PROFILE']))  
  12.         $mobile_browser++;  
  13.   
  14.     $mobile_ua = strtolower(substr($_SERVER['HTTP_USER_AGENT'],0,4));  
  15.     $mobile_agents = array(  
  16.         'w3c ','acs-','alav','alca','amoi','audi','avan','benq','bird','blac',  
  17.         'blaz','brew','cell','cldc','cmd-','dang','doco','eric','hipt','inno',  
  18.         'ipaq','java','jigs','kddi','keji','leno','lg-c','lg-d','lg-g','lge-',  
  19.         'maui','maxo','midp','mits','mmef','mobi','mot-','moto','mwbp','nec-',  
  20.         'newt','noki','oper','palm','pana','pant','phil','play','port','prox',  
  21.         'qwap','sage','sams','sany','sch-','sec-','send','seri','sgh-','shar',  
  22.         'sie-','siem','smal','smar','sony','sph-','symb','t-mo','teli','tim-',  
  23.         'tosh','tsm-','upg1','upsi','vk-v','voda','wap-','wapa','wapi','wapp',  
  24.         'wapr','webc','winw','winw','xda','xda-'  
  25.     );  
  26.   
  27.     if(in_array($mobile_ua$mobile_agents))  
  28.         $mobile_browser++;  
  29.     if(strpos(strtolower($_SERVER['ALL_HTTP']), 'operamini') !== false)  
  30.         $mobile_browser++;  
  31.     if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows') !== false)  
  32.         $mobile_browser=0;  
  33.     if(strpos(strtolower($_SERVER['HTTP_USER_AGENT']), 'windows phone') !== false)  
  34.         $mobile_browser++;  
  35.     if($mobile_browser>0)  
  36.         return true;  
  37.     else  
  38.         return false;  
  39. }  

简单通过user-agent方式判断
+阅读全文

curl file_get_contents post方式获取数据

curl post,file_get_contents post,curl file_get_contents post请求数据

在PHP中cURL、file_get_contents函数均可以获取远程链接的数据,但是file_get_contents的可控制性不太好,对于各种复杂情况的数据采集情景,file_get_contents显得有点无能为力,cURL在数据采集情景复杂的环境下略显优势。cURL函数的curl_setopt里面还有很多参数,读者可以抽空整体看一遍,虽然平时未必用得上,但是至少做到心里有底,知道都有哪些参数,必要时还能找出来使用。本文仅粗略介绍了file_get_contents函数和cURL函数的基本使用:

curl post方式获取数据
  1. //调用示例  
  2. $post_data = array ("category" => "9");  
  3. echo postCurl('http://fity.cn/category.php',$post_data);  
  4.   
  5. //CURL函数--POST方式请求资源  
  6. function postCurl($api_url$post_data){  
  7.     $ch = curl_init(); // 初始化CURL句柄  
  8.     curl_setopt($ch, CURLOPT_URL, $api_url); // 设置访问的url地址  
  9.     curl_setopt($ch, CURLOPT_TIMEOUT, 35); // 设置超时  
  10.     curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 15); // 等待的时间,如果设置为0,则不等待  
  11.     curl_setopt($ch, CURLOPT_HEADER, false); // 设定是否输出页面内容  
  12.     curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); // 设定是否显示头信息  
  13.     curl_setopt($ch, CURLOPT_POST, true);  // post数据  
  14.     curl_setopt($ch, CURLOPT_POSTFIELDS, $post_data);// post的变量  
  15.     curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"); // 模拟浏览器头信息  
  16.     curl_setopt($ch, CURLOPT_REFERER, "http://www.x.com"); // 伪造来源地址  
  17.     $data = curl_exec($ch);  
  18.     curl_close($ch);  
  19.   if ($data) {  
  20.     return $data;  
  21.   } else {  
  22.     return false;  
  23.   }  
  24. }  

file_get_contents post方式获取数据
+阅读全文

php获取自然周_php获取自然周开始结束日期

php获取当前自然周,php获取当前为第几周,php获取自然周开始结束日期时间,php date()函数

示例:
echo getTotalWeek(); //输出当前年份全年共有多少自然周
echo getWeekNum(); //输出当前为本年的第几周
echo getWeekNum('2016-7-31');  //输出2016年7月31日为本年的第几周
print_r(getWeekDate(2016,32)); //输出2016年第32周的起止日期

PHP根据年份获取全年共多少自然周、PHP获取一年共有多少自然周(考虑闰年)
  1. /** 
  2. * 获得当前年有多少个自然周 
  3. * @param year 年份,不传参默认为当前年份,格式2016 
  4. * @author 未来往事<http://fity.cn> 
  5. * @return 总共的周数 
  6. * @return string 
  7. */  
  8. function getTotalWeek($year = '') {  
  9.   $year = ($year) ? $year : date('Y');  
  10.   $week = 0;  
  11.   $days = 365;  
  12.   //if ($year % 400 == 0 || ($year % 4 == 0 && $year % 100 != 0)){//判断是否闰年,闰年366天。最后修改2016.8.4 By未来往事<http://fity.cn>  
  13.   if (date('L') == 1){//判断是否闰年,闰年366天  
  14.     $days = 366;  
  15.   }  
  16.   //得到一年所有天数然后除以7  
  17.   $week = $days / 7;//得到多少周  
  18.   return floor($week);  
  19. }  
  20. 欢迎来访未来往事博客http://fity.cn  

PHP根据日期时间获取为当前的第几周、PHP获取当前是一年的第几周
  1.   /**  
  2.      * 获取某一年或当前日期自然周 
  3.      * @param int $date 日期时间,不传参默认为当前时间,格式2016-8-3 
  4.      * @author 未来往事<http://fity.cn> 
  5.      * @return string 
  6.      */   
  7.   function getWeekNum($date = ''){  
  8.     $datearr = ($date) ? getdate(strtotime($date)) : getdate();  
  9.     $year = strtotime($datearr['year'].'-1-1');  
  10.     $startdate = getdate($year);  
  11.     $firstweekday = 7-$startdate['wday'];//获得第一周几天  
  12.     //今年的第几天  
  13.     //$yday = $datearr['yday']+1-$firstweekday;//以周日开始计算  
  14.     $yday = $datearr['yday']-$firstweekday;//以周一开始计算  
  15.     return ceil($yday/7)+1;//取到第几周  
  16.   }  
  17. //欢迎来访未来往事博客http://fity.cn  

PHP根据日期时间及第几周获取开始日期和结束日期、PHP获取自然周的开始日期和结束日期
+阅读全文

composer安装配置

安装配置PHP环境(系统环境变量设置等-windows)

注意这点很重要。可以使用命令php -v查看PHP是否正确安装。

下载 Composer

打开命令行并依次执行下列命令安装最新版本的 Composer:

  1. php -
......
+阅读全文

thinkphp session会话时间周期

thinkphp session设置时间无效,thinkphp session周期设置无效问题,thinkphp session时间周期设置

thinkphp session使用:
  1. session('fity.cn','FityTest');  //赋值key名称为fity.cn的session值为FityTest  
  2.   
  3. $fity = session(
......
+阅读全文

PHP网站安全性浅谈

PHP网站安全性浅谈

一、web应用服务安全性设置

1、服务器各应用服务尽可能以独立用户运行,如:
 WEB服务运行帐户为www
 MySQL服务运行帐户为mysql
 Memcached用户为memcache
 Redis运行帐户为redis

2、应用服务目录的读写权限最小颗粒化
(a)缓存目录:
一般需要755/777权限,但是多数情况下缓存目录无须提供给用户访问,可以通过nginx拒绝。如:
location ~ "^/cache" {
  return 403;
}
(b)附件目录:
一般也需要755/777等写入权限,建议附件和程序分离,附件不做PHP配置解析(这点能做到最好)。
如果上面做不到,那么建议你尽可能不去解析附件目录的PHP。如:
location ~* ^/upload/.*.(php|php5)($|/){
    deny all;
}

location ~* .*\.php($|/){
      if ($request_filename ~* (.*)\.php) {
            set $php_url $1;
      }
      if (!-e $php_url.php) {
            return 403;
      }

      fastcgi_pass  127.0.0.1:9000;
      fastcgi_index index.php;
      include fcgi.conf;
}
PS:
+阅读全文

Memcache PHP测试代码

Memcache PHP测试代码,PHP Memcache测试代码
  1. $mem = new Memcache;  
  2. $mem->connect("127.0.0.1", 11211) or die ("Could not connect"
......
+阅读全文

PHP高质量不失真等比例图片缩放类

php图片缩放类,php不失真图片缩放类,php高质量缩略图,php缩略图函数,php无损缩放,php图片缩放后模糊解决,图片缩略图质量低解决方法。在PHP网站开发过程中,如果你建立的网站涉及大量的图片处理,必然涉及到图片上传、缩放,而如何保持图片不失真,是很多初级PHP网站开发者比较头疼的一件事,今天未来往事<http://fity.cn>就和大家分享一下如何进行等比例不失真图片缩放。

首先我们来了解几个php函数:
imagepng()http://cn2.php.net/manual/en/function.imagepng.php
注:函数的第三个参数的数值区间控制图片的质量,与imagejpeg()函数不同,imagepng()函数的区间值是0-9 (0表示质量最高,9表示质量最低)。PHP 5.1.2+支持。
imagegif()http://cn2.php.net/manual/en/function.imagegif.php
imagejpeg()http://cn2.php.net/manual/en/function.imagejpeg.php
注:函数的第三个参数控制图片的质量,区间0-100 (0表示质量最低,100表示质量最高. 默认75)

附类代码:
+阅读全文

ueditor1.4上传图片水印

ueditor上传图片加水印,ueditor1.4.3 水印,ueditor1.4.3 图片水印,ueditor 1.4.3上传图片添加水印,ueditor图片水印控制

打开UEditor压缩包下php目录中的上传类文件:Uploader.class.php
在上传文件的主要方法下添加调用水印处理方法:

  1. /**

......
+阅读全文

php识别图片的主色调

本文只做一些基础的单点识别判断,仅供参考。
  1. //取图片位于y轴1/2处的某单点主色调方法  
  2. function getRgb($file){  
  3.   //裁切图片  
  4.   $size = getimagesize
......
+阅读全文

php裁切图片方法示例

php裁剪图片指定区域代码示例
原图图片:
点击在新窗口中浏览此图片
其中虚线框中是我们需要裁切保存的图片。

  1. $src = 'fity.cn.jpg';  
  2. //创建源图的实例  
  3. $file = imagecreatefromstring(file_get_contents($src));  
  4.    
  5. //裁剪开区域左上角的点的坐标  
  6. $x = 90;  
  7. $y = 40;  
  8. //裁剪区域的宽和高  
  9. $width = 180;  
  10. $height = 110;  
  11. //最终保存成图片的宽和高,和源要等比例,否则会变形  
  12. $final_width = 120;  
  13. $final_height = round($final_width * $height / $width);  
  14.    
  15. //将裁剪区域复制到新图片上,并根据源和目标的宽高进行缩放或者拉升  
  16. $new_image = imagecreatetruecolor($final_width$final_height);  
  17. imagecopyresampled($new_image$file, 0, 0, $x$y$final_width$final_height$width$height);  
  18.    
  19. //输出图片  
  20. header('Content-Type: image/jpeg');  
  21. imagejpeg($new_image);  
  22.    
  23. imagedestroy($file);  
  24. imagedestroy($new_image);  
输出图片:
+阅读全文

imagecopymerge合成图片 黑色背景问题

php imagecopymerge合并图片黑色背景问题,多图片合并 黑色背景问题解决

将默认使用的imagecopymerge替换成如下函数
  1. function imagecopymerge_alpha($dst_im$src_im$dst_x$dst_y$src_x$src_y$src_w$src_h$pct){  
  2.         $opacity=$pct;  
  3.         // getting the watermark width  
  4.         $w = imagesx($src_im);  
  5.         // getting the watermark height  
  6.         $h = imagesy($src_im);  
  7.                
  8.         // creating a cut resource  
  9.         $cut = imagecreatetruecolor($src_w$src_h);  
  10.         // copying that section of the background to the cut  
  11.         imagecopy($cut$dst_im, 0, 0, $dst_x$dst_y$src_w$src_h);  
  12.         // inverting the opacity  
  13.         //$opacity = 100 - $opacity;  
  14.                
  15.         // placing the watermark now  
  16.         imagecopy($cut$src_im, 0, 0, $src_x$src_y$src_w$src_h);  
  17.         imagecopymerge($dst_im$cut$dst_x$dst_y$src_x$src_y$src_w$src_h$opacity);  
  18.     }  

图示:
+阅读全文

php身份证验证

php身份证验证方法,身份证号码验证算法

18身份证号码的结构
  公民身份号码是特征组合码,由十七位数字本体码和一位校验码组成。
  排列顺序从左至右依次为:六位数字地址码,八位数字出生日期码,三位数字顺序码和一位校验码。
1、地址码
  表示编码对象常住户口所在县(市、旗、区)的行政区域划分代码,按GB/T2260的规定执行。
2、出生日期码
  表示编码对象出生的年、月、日,按GB/T7408的规定执行,年、月、日代码之间不用分隔符。
......
+阅读全文