未来往事
学会感谢你身边的一切、感谢你身边的每一个人,善待他人,即是最好的善待自己。 [2018年 第50周/共52周]

php分卷备份恢复mysql数据库

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

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

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

搜索引擎收录带?问号的动态页面问题

最近查看站点百度收录信息发现收录了部分带有?问号的动态页面地址,经过一番学习后,最终了解到可以在robots.txt协议文件里增加过滤项:
Disallow:  /*?* #禁止访问网站中所有的动态页面

注意:
1、仅适用于全站静态化或伪静态的站点
2、此方法会导致站内某些内链(动态链接)失效,不过对站点整体收录实际上没啥影响
......
+阅读全文

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方式判断
+阅读全文

欢迎,博客已支持自适应移动设备屏幕咯

欢迎[emot]wg[/emot],花了3个小时使博客PC端网页界面支持自适应移动设备屏幕[emot]ppbguzhang[/emot],用的时间虽不长,但这件事确是2015/1/1想做的,突然发现对自己的事情总不那么上心、执行缓慢 [emot]sk[/emot]

PS:,目前只是满足移动设备基本可用,当然也不对它的品质太过于苛求,毕竟我需要花费更多的时间和精力到我的工作中去,只有那样我才能很好的生活下去。[emot]smoke[/emot]

最后更新:2016/08/13
对android手机浏览器做了针对性的微调兼容
+阅读全文

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方式获取数据
+阅读全文

js判断是否是手机或移动设备访问

js判断是否是手机访问,js判断是否移动设备,使用navigator.userAgent.toLowerCase()判断移动端类型,js简单判断设备
  1. var ua  = navigator.userAgent.toLowerCase();  
  2. if(ua.indexOf('android') != -1 || ua.indexOf('iphone') != -1 || ua.indexOf('ipad'
......
+阅读全文

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获取自然周的开始日期和结束日期
+阅读全文

mongodb与mysql优缺点比较

mongodb与mysql优缺点比较,与关系型数据库相比,MongoDB的优点:
①弱一致性(最终一致),更能保证用户的访问速度:
举例来说,在 传统的关系型数据库中,一个COUNT类型的操作会锁定数据集,这样可以保证得到“当前”情况下的精确值。这在某些情况下,例如通过ATM查看账户信息的 时候很重要,但对于Wordnik来说,数据是不断更新和增长的,这种“精确”的保证几乎没有任何意义,反而会产生很大的延迟。他们需要的是一个“大约” 的数字以及更快的处理速度。
但某些情况下MongoDB会锁住数据库。如果此时正有数百个请求,则它们会堆积起来,造成许多问题。我们使用 了下面的优化方式来避免锁定:每次更新前,我们会先查询记录。查询操作会将对象放入内存,于是更新则会尽可能的迅速。在主/从部署方案中,从节点可以使用 “-pretouch”参数运行,这也可以得到相同的效果。使用多个mongod进程。我们根据访问模式将数据库拆分成多个进程。

②文档结构的存储方式,能够更便捷的获取数据。
对于一个层级式的数据结构来说,如果要将这样的数据使用扁平式的,表状的结构来保存数据,这无论是在查询还是获取数据时都十分困难。

③内置GridFS,支持大容量的存储。
GridFS是一个出色的分布式文件系统,可以支持海量的数据存储。内置了GridFS了MongoDB,能够满足对大数据集的快速范围查询。

④内置Sharding。
+阅读全文

Nginx配置文件参数详细说明

Nginx配置文件参考配置指南,Nginx配置文件参数说明
    #运行用户
    user www-data;  
    #启动进程,通常设置成和cpu的数量相等
    worker_processes  1;

    #全局错误日志及PID文件
    error_log  /var/log/nginx/error.log;
    pid        /var/run/nginx.pid;

    #工作模式及连接数上限
    events {
 
......
+阅读全文

composer安装配置

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

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

下载 Composer

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

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

jquery图片加链接

jquery设置图片超链接:
  1. <script type="text/javascript">    
  2.         $(document).ready(function() {    
  3.     
  4.            
......
+阅读全文

js/jQuery监听网页回车事件 form表单提交

使用js/jQuery监听回车事件, 在特殊情况下我们可能需要通过js监听网页回车事件进行提交form表单参数达到特定目标,本文主要介绍js或jQuery监听网页回车事件或元素容器内回车事件.

jQuery监听网页回车:
  1. $(document).keyup(function(e){  
  2.     var curKey = e.which;   
  3.     if(curKey==13){  
  4.         //具体操作处理方法  
  5.     }  
  6.  });  

js监听网页回车:
+阅读全文

mysql replace

mysql replace,mysql replace替换,mysql替换,mysql substring,mysql locate

语法格式:

UPDATE 表名
SET 字段名 = REPLACE (
替换前的字段值,
‘替换前关键字’,
‘替换后关键字’
)
WHERE
字段名 REGEXP “替换前的字段值”;

示例Demo:
(1)替换b-blog表主键id为9的content字段内容www.fity.cn为fity.cn:

  1. UPDATE b_blog
  2. SET content








......
+阅读全文

thinkphp session会话时间周期

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

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

discuz memcache+ssrf GETSHELL漏洞解决方案

discuz memcache+ssrf GETSHELL漏洞解决方法,进入论坛后台性能优化模块查看是否支持memcache,如果支持再查看是否开启,如果不支持的论坛,可以选择忽略本文。

漏洞信息:
漏动来源:阿里云云盾
漏动名称:Discuz memcache+ssrf GETSHELL漏洞
漏动描述:Discuz存在SSRF漏洞,在配置了memcache的情况下,攻击者可以利用ssrf通过memcache中转,向磁盘上写入WEBSHELL恶意代码,从而造成数据库泄漏;

解决方法:
打开/source/function/function_core.php
搜索
  1. $content = preg_replace($_G[
......
+阅读全文