PHP
文章平均质量分 63
XP_32986175
坚持学习
展开
-
XML与JSON基本用法初探
一、XML定义扩展标记语言(Extensible Markup Language, XML),可以用来标记数据、定义数据类型,是一种允许用户对自己的标记语言来进行定义的源语言。(即:XML -> 节点标签可以自定义。)简单XML示例: xml示例 示例描述PHP生成XML数据:1、拼接字符串。(注意:拼接时记得声明 header("C原创 2016-09-04 22:44:23 · 363 阅读 · 0 评论 -
微信支付(公众号支付)简单实现
最近项目中有需要用到微信支付功能的,在姜总的指导下也简单的研究了下,在这里记录一下在这个项目中实现微信支付功能的整个过程。当然这里只做了微信支付功能和支付完成修改订单状态的功能,所以说是简单实现。。微信支付。首先要用到微信公众平台和微信支付平台。我这里大概总结了四个步骤:一、微信公众平台配置。1、获取appID和appSecret。 2、设置微信支付原创 2017-01-11 17:11:25 · 1932 阅读 · 0 评论 -
微信公众平台OAuth2.0网页授权php示例
1、配置授权回调页面域名,如 www.aaa.com 2、模拟公众号的第三方网页,fn_system.phpPhp代码 if(emptyempty($_SESSION['user'])){ header("Location:http://www.aaa.com/uc/fn_wx_login.php");转载 2017-02-13 17:07:55 · 270 阅读 · 0 评论 -
面试遇到的算法题—(大整数问题)
题:A、B都是大于24位的大整数,写一个函数,返回A+B的值。 function bigIntSum($a='2654', $b='111'){ //定义两个空数组 $arr_a = array(); $arr_b = array(); $arr = array(); //获取两个大整数的长度 $len_a = strlen($a); $len_b = strle原创 2017-03-11 18:29:30 · 472 阅读 · 0 评论 -
Laravel框架数据库CURD操作、连贯操作使用方法
本文为大家讲解了Laravel框架中的数据库CURD操作、连贯操作、链式操作的用法,包含大量数据库操作常用方法,感兴趣的同学参考下.Laravel是一套简洁、优雅的PHP Web开发框架(PHP Web Framework)。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。一、Selects检索表中的所有行转载 2017-03-13 11:59:24 · 494 阅读 · 0 评论 -
Lavarel bind参数丢失
项目中一次使用bind时,遇到bind参数丢失的情况,这种记录一下。$params = array_merge($this->default_params, $params); $prefix = DB::getTablePrefix(); $sql = DB::table('order')->whereRaw("periods_id = {$prefi原创 2017-04-13 15:48:45 · 472 阅读 · 0 评论 -
PHP正则基础
1、PHP正则组成在PHP里,一个正则表达式分为三个部分:分隔符、表达式、修饰符。 分隔符:可以是除了字母、数字、反斜线及空白字符意外的任何字符(比如/、!、#、%、|、~等)。经常使用分隔符是正斜线(/)、hash符号(#)以及取反符号(~)。考虑可读性,为了避免和反斜线混淆,一般不使用正斜线做分隔符。 表达式:有一些特殊字符和非特殊字符的字符串组成,比如"[a-z0-原创 2017-05-12 18:53:06 · 382 阅读 · 0 评论 -
php向mysql数据库查询、插入、删除较多条数据
最近项目做了个数据库备份。需要用php对项目30天前数据做增量备份。记录一下其中处理较多数据查询、插入、删除的解决办法。一、查询由于项目三十天之前的数据实在是太多。查询时甚至出现了,内存不足的报错。。解决方法:利用分页原理。动态传入page参数。class DatabaseBak extends Command{ protected $page_size;原创 2017-05-19 15:40:04 · 1359 阅读 · 0 评论 -
Lavarel 自定义Artisan Console
一、简介Artisan 是lavarel自带的命令行接口名称,它为我们在开发中提供了很多有用的命令。通过强大的Symfony Console组件驱动。想要看所有可用的Artisan命令,可使用list命令:php artisan list每个命令都可以用help指令显示命令描述及命令参数和选项。想要参看帮助界面,只需要在命令前加上help就可以了:php artisan原创 2017-05-21 16:29:27 · 593 阅读 · 0 评论 -
$.post异步引起的接收不到返回数据包
背景:公司微信公众号项目,前端调用php接口,使用的是$.post,抓包显示php接口返回数据正常,而js获取不到返回数据包。代码:$.post(window.config.root+"/wx/pgash/page/share", {url:location.href.split('#')[0]}, function (res) {})看上去貌似没什么问题,但实际上不能接收到callb原创 2017-08-08 17:07:02 · 4126 阅读 · 0 评论 -
对于Session的一点理解
Session1、浏览器(或者客服端等)和服务器的一次会话的过程,会话结束,session失效。(注意是服务器是代码所在的服务器,而不是微信服务器的第三方服务器)2、cache谁都可以读。session会在cookie出入session_id。只有进行对应的会话时才能读取。Http1、request(请求)----包括请求行、请求头、body三部分。2、response原创 2017-08-04 13:53:28 · 252 阅读 · 0 评论 -
微信开发刷新网页code过期
在微信开发中,通常要获取点击链接的用户的open_id通常需要这几步。1、获取带code的url,重定向。获取code。 static public function getURL(array $params) { $wx_id = $params['wx_id']; $domain = self::getWxDate($wx_id)->dom原创 2017-08-05 16:14:58 · 4882 阅读 · 0 评论 -
mysql联合索引
一、如果你经常要用到多个字段的多条件查询,可以考虑建立联合索引。对于联合索引:mysql从左至右使用索引中的字段,一个查询可以使用全部或者只使用索引的一部分(但只能是最左部分)。例如:索引key index(a,b,c),可以支持a| a,b | a,b,c 3种组合进行查找,但不支持b,c进行查找。当左侧字段是常量引用时,索引就十分有效。二、原创 2017-09-10 22:05:00 · 532 阅读 · 0 评论 -
Redis雪崩、穿透、热点key等优化
一、缓存Redis做缓存是最常见的应用场景。客户端请求在缓存层命中就直接返回,如果miss就去读取存储层,存储层读取到就写入缓存层,然后再返回到客户端。 优点: 加速读写 降低后端负载 缺点: 数据的不一致性 代码维护成本 运维成本二、缓存穿透优化 然而缓存可能会遇到这种问题:请求cache拿不到数据,就会去存储层拿,都拿不到时,返回空值(可能会返回大量空值)。或者代码有问题,拿不到原创 2017-11-06 22:56:06 · 11624 阅读 · 0 评论 -
Redis五种基本数据类型
一、string(字符串)1、常用命令set key value [ex] [px] (setex aa 10 test)getmset(批量设置)mget incr keydecrincrby key increment 增多少decrby incrbyfloat 浮点数增加2、内部编码int:8个字节的长整型embstr:原创 2017-11-01 23:04:17 · 422 阅读 · 0 评论 -
网站伪静态实现
最近有项目需要实现网站伪静态的功能,在这里我也记录一下。。。我总结了一下,大概三个步骤:一、.htaccess文件的修改。.htaccess文件的修改时实现网站伪静态的核心。主要就是实现url重定向,比如当用户浏览器输入www.xxx.com/news/20170101/1.html时,实际访问的是www.xxx.com/web/news_detail.php?id原创 2017-01-09 11:20:37 · 759 阅读 · 0 评论 -
记录一次网站改版“洗数据”的过程
背景:公司接到清华的一个开发清华五道口官网的项目。需要对以前其官网上的数据进行迁移。要求:一般的比如新闻内容这个字段会有非常多的数据,而原来的网站这个字段的数据中存储了非常多的标签,如:、内联样式等等。而我们一般只能存在、,标签。解决方法:将其他标签替换、将不要的东西去掉。 function ChangeContent($str){ // $str = st原创 2016-11-13 21:23:59 · 461 阅读 · 0 评论 -
PHP传输神器cURL
一、cURL的概念cURL (Client URL Library Functions) 由Daniel Stenbery创建。官方定义为:curl is a command line tool for transferring data with URL syntax,即使用URL语法传输数据的命令行工具。(请求资源、返回资源)二、在PHP中使用cURL的三个步骤1、初始化c原创 2016-09-25 22:58:31 · 509 阅读 · 0 评论 -
记录一次短信推送时出现的bug
事件:公司正在开发且已经上线给客户使用的校友云平台,在一次客户新建短信任务后,可能由于客户网速较慢等原因,客户可能连续点击了两次开始发送按钮。导致短信任务虽然只生成了一个,但是短信消费日志里面有两条消费记录(消费记录是按短信任务生成的,即一个任务一条消费记录)。解决方法:因为每次发送短信不管成功还是失败,都会生成想应的日志文件。所以每次开始执行任务的时候都先判断一下是否有相应的原创 2016-09-26 10:44:46 · 667 阅读 · 0 评论 -
JS客户端获取服务端返回数据方法总结
在JS中将JSON的字符串解析成JSON数据格式,一般有两种方式: 1.一种为使用eval()函数。 2. 使用Function对象来进行返回解析。 一、使用eval函数来解析,并且使用jquery的each方法来遍历 1)首先我们来认识下eval()这个函数。定义:W3C给出的标准定义是:eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代原创 2016-09-25 20:45:47 · 9597 阅读 · 0 评论 -
PHP的几种常见的加密技术
一、Md5()加密算法单项加密,无法解密。md5(string $str[, bool $raw_output = false]); //计算md5散列值对于可选参数raw_output。如果设置为true,那么MD5报文摘要将以16字节长度的原始二进制格式返回。false返回32位字符十六进制数字形式返回散列值。如果想让加密更加难以被破解,可以使用两次或者两次以上进行加密。如:原创 2016-10-22 12:25:57 · 1325 阅读 · 0 评论 -
GD库学习
一、什么是GD库graphic device,图像工具库,gd库是php处理图形的扩展库,gd库提供了一系列用来处理图片的API,使用GD库可以处理图片,或者生成图片。 在网站上 GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。php并不局限于输出HTML文本。php通过使用GD扩展库还能用来动态输出图像,例如文字按钮、验证码、数据统计图等。哈可以轻松地编辑图像,力图处原创 2016-10-15 19:16:20 · 516 阅读 · 0 评论 -
使用GD库制作验证码
1、创建画布$image = imagecreatecolor($width, $height);2、定义要用到的颜色$white = imagecolorallocate($image, 255, 255, 255);$blank = iamgecolorallocate($image, 0, 0, 0);3、填充画布imagesfilledrectang原创 2016-10-15 19:59:45 · 380 阅读 · 0 评论 -
使用cookie实现一周内自动登录
一般网站的登录界面都会有自动登录的一个选项。现在就来实现一个一周内自动登录的功能。1、如果当用户登录的时候,在处理页,要判断是否选择了自动登录,然后实现将id和name存进cookie:if($autologin){setcookie("userid", $userid, time()+7*24*3600);setcookte("username", $username原创 2016-10-15 20:41:34 · 5319 阅读 · 0 评论 -
PHP实现文件上传
一、form表单实现文件的上传与提交二、pic_do页面获得文件并另存到保存文件的目录下1、获得文件。type=file上传的文件信息都可以通过$_FILES这个超全局变量获得。$f_name = basename($_FILES[$elename]["name"]); //被上传文件的名称$f_type = $_FILES[$elename][原创 2016-10-15 22:28:28 · 343 阅读 · 0 评论 -
使用GD库为图片打水印
一、文字水印文字水印就是在图片上加上文字,主要使用gd库的imagefttext方法,并且需要字体文件。代码如下:$dst_path = 'dst.jpg';//创建图片的实例$dst = imagecreatefromstring(file_get_contents($dst_path));//打上文字$font = './simsun原创 2016-10-16 21:08:09 · 572 阅读 · 0 评论 -
使用PHP GD库生成缩略图
$filename = "test.jpg"; //文件名$src_image = imagecreatefromjpeg($filename); //创建一个JEPG的画布资源list($src_w, $src_h) = getimagesize($filename); //根据数组得到想要的宽高$scale = 0.5; //缩放比例原创 2016-10-16 21:18:50 · 398 阅读 · 0 评论 -
记录一次导出word遇到的textare换行问题
事件:页面上通过textare添加信息,word导出。遇到换行全部变成了一个空格的问题。解决方法:首先要注意的:1、Textarea 和 ckeditor(包括之前用的fckeditor)传递出来的东西,无需strCheck函数(以前是sqlReplace)的过滤。2、Textarea传递的值一定要加HTMLEncode,然后才能写入数据库。(读出来的时候,直接原创 2016-11-10 17:08:26 · 932 阅读 · 0 评论 -
Windows下使用telnet命令发送邮件
一、邮件发送原理邮件发送发 -> 使用某个邮件服务器(如:126、sina、aliyun等) -> 1、邮件发送方与smtp服务器,进行身份确认 2、填写邮件抬头 -> 发送的smtp服务器根据邮件抬头,找到接收的smtp服务器 -> 根据发送端的smtp服务器发过来的邮件抬头,找到正确的接收方 -> 邮件接收方二、telnet模拟邮件发送准备工作:1、两个邮箱【建议使用s原创 2016-10-07 22:31:11 · 4330 阅读 · 0 评论 -
记录经理的一次网站安全与网站优化的技术分享会议
一、网站安全1、公司自有框架safeCheck函数。/** * safeCheck() 参数检查,并防XSS 和 SQL注入 * * @param mixed $str * @param bool $number 是否做数字检查 1-(默认)数字 0-不是数字 * @param bool $script 是否过滤script 1-(默认)过滤;0-不过滤 * @retu原创 2016-11-13 20:11:35 · 404 阅读 · 0 评论 -
记录一次有关于实现新闻下一篇功能的代码优化
在web开发中,经常会有一个需求需要实现,那就是下一篇。比如,当我们阅读某一篇新闻时,一般在新闻详情页末尾会有,下一篇,标题是XXX。然而在实现这个功能的时候,我虽然实现了,但是确实一种效率非常低的方法,幸好有经理帮我指出错误,并为我提供了解决方法。话不多说,先附上我的烂代码://实现下一篇功能 $newslist = News::listNews('', 1, 999999原创 2016-11-13 21:03:59 · 487 阅读 · 0 评论