随笔分类 -  php杂记

记录一些常用的技巧吧
摘要:今天在处理递归无限层级菜单时,遇到一个稍微烧脑的问题,如何显示当前节点所在的层级数。废话不多说,我们先看个直观的无限层级: 我们看到所有节点层级数没问题,那么我如何查看节点中pid=3的所有节点层级关系呢 显然不对,况且菜单展示并不友好,pid=3的父节点至少要显示在顶层吧。层级数暂且不管,我们先解 阅读全文
posted @ 2019-05-06 18:11 周伯通之草堂 阅读(2394) 评论(0) 推荐(0) 编辑
摘要:开发中大家都是使用的utf8编码,昨天遇到一个奇坑,本是一件很小的问题,解决也浪费了个吧小时。废话不多说,植入正题: 文件下载方式:通过header二进制流文件下载需求: 文件上传保留文件名不变数据字段file_url值:/public/upload/files/2019/04-29/中文测试包.r 阅读全文
posted @ 2019-04-29 17:16 周伯通之草堂 阅读(3127) 评论(2) 推荐(0) 编辑
摘要:项目需要上传文件名保持不变,发现上传中文失败:错误如下: 失败的原因大致猜到是编码问题.保存文件时,需要将中文由utf8转为gb2312。 额外补充:如果大家使用Tp5 上传,文件在thinkphp/library/think/File.php.大概是374行:大多数解决办法是在下面的方法转码,但会 阅读全文
posted @ 2019-04-17 10:01 周伯通之草堂 阅读(2946) 评论(0) 推荐(1) 编辑
摘要:项目使用ajax post后根据返回的success,需要打开一个新页面,使用window.open发现谷歌浏览器直接被拦截。 后来了解发现该操作并不是用户主动触发的,所以它认为这是不安全的就拦截了,即使 ajax 回调函数中模拟执行 click 或者 submit 等用户行为(trigger('c 阅读全文
posted @ 2019-04-05 23:02 周伯通之草堂 阅读(2491) 评论(0) 推荐(0) 编辑
摘要:对二维数组指定的键名排序,首先大家想到的是array_multisort函数,关于array_multisort的用法我之前也写了一篇废话不多言,我们看个实例: 细心的朋友会看到,键名重置了,键名从0开始,显然这可能不是我们想要的结果,那如何保持键名不变? 我们再看个示例: 这里我们也可以精简下ar 阅读全文
posted @ 2019-02-24 21:16 周伯通之草堂 阅读(4220) 评论(0) 推荐(1) 编辑
摘要:今天phpstudy升级php7.3,发现框架报错:could not find driver,后来发现默认php.ini的配置有几个是注释掉的,配置php.ini,修改如下 再次运行。。。OK正常,补充:另外常用的几个扩展也要开启: 阅读全文
posted @ 2019-01-16 14:02 周伯通之草堂 阅读(8527) 评论(0) 推荐(1) 编辑
摘要:大家可能都知道php提供了ip2long与long2ip方法对ip地址处理。抛砖引玉,说点概念性滴: 示例: 当ip地址比较大时,ip2long会出现负数: 原因: IPv4使用无符号32位地址,因此最多有2的32次方减1(4294967295)个地址。书写用4个小数点分开的10进制数。 记为A.B 阅读全文
posted @ 2019-01-04 15:48 周伯通之草堂 阅读(1350) 评论(0) 推荐(1) 编辑
摘要:关于闭包函数,之前在聊过。这里忽略了一点,不管是Go/Php/Python,闭包都存在局部变量的引用。我们还是先看个例子: PHP示例: 以上输出: 相信很多朋友会说:不是应该输出 0 1 2吗?好,继续,我们来看一个Golang的闭包示例: 以上输出:(这里输出的内存地址会根据机器的不同而有所不同 阅读全文
posted @ 2019-01-04 10:09 周伯通之草堂 阅读(564) 评论(0) 推荐(0) 编辑
摘要:随着互联网发展,前后端分离的开发模式兴起,Mock也从以住的幕后走上了台面,让更多的人而得知, 以前传统的开发方式Mock大多局限在后端人员接触较多一些,那么什么是Mock? Mock其实就是真实数据存在之前,即调试期间的代替品,是个虚拟的存在, 场景:比如开发新功能,客户端需要等后端接口开发完毕之 阅读全文
posted @ 2018-12-17 09:36 周伯通之草堂 阅读(1134) 评论(0) 推荐(1) 编辑
摘要:导出数据量很大的情况下,生成excel的内存需求非常庞大,服务器吃不消,这个时候考虑生成csv来解决问题,cvs读写性能比excel高。测试表student 数据(大家可以脚本插入300多万测数据。这里只给个简单的示例了) 导出脚本export.php 导出效果: 阅读全文
posted @ 2018-11-20 11:04 周伯通之草堂 阅读(5316) 评论(1) 推荐(0) 编辑
摘要:之前一直用的mysql5.5,最近发现Mysql8更新了很多新特性以及查询效率的提升,觉得很有必要更新下开发版本,好,废话不多说: 1、下载安装包,下载地址:mysql8.0 。如果你想要下载其它版本可以选择:mysql历史版本地址。 2、下载好,删除phpstudy的mysql目录。如果数据重要的 阅读全文
posted @ 2018-11-18 22:37 周伯通之草堂 阅读(3408) 评论(0) 推荐(0) 编辑
摘要:之前写过一篇闭包的使用(点击此处进入),这次深入汇总下php中匿名函数的深入用法和理解: php中的匿名函数 也叫闭包函数 允许指定一个没有名称的函数。把匿名函数赋值给变量,通过变量来调用,举个简单的例子: 技巧1: 将匿名函数放在普通函数中,也可以将匿名函数返回,:这样就构成了一个简单的闭包 技巧 阅读全文
posted @ 2018-11-10 21:48 周伯通之草堂 阅读(9958) 评论(0) 推荐(4) 编辑
摘要:废话不多说啦,直接上代码: 这里需要注意的是: 要想以 x-www-form-urlencoded 方式发送,最关键是发送的数据格式。 方式from-data试发送的数据用的是array格式,而方式为 x-www-form-urlencoded 时需要用key=value&key2=value2的格 阅读全文
posted @ 2018-11-09 23:40 周伯通之草堂 阅读(22980) 评论(0) 推荐(3) 编辑
摘要:我们先举个简单示例: 以上例程会输出:鸠摩智 解释:goto 操作符可以用来跳转到程序中的另一位置。该目标位置可以用目标名称加上冒号来标记,而跳转指令是 goto 之后接上目标位置的标记。 PHP 中的 goto 有一定限制,目标位置只能位于同一个文件和作用域,也就是说无法跳出一个函数或类方法,也无 阅读全文
posted @ 2018-11-05 14:06 周伯通之草堂 阅读(11686) 评论(3) 推荐(1) 编辑
摘要:早起的版本如 PHP5.6 ,绑定并调用闭包使用 bindTo,而PHP7 中 Closure :: call()方法具有更好的性能,废话不多说, 较早的 PHP 示例: PHP7 示例: 阅读全文
posted @ 2018-09-16 14:48 周伯通之草堂 阅读(2473) 评论(1) 推荐(1) 编辑
摘要:发现两款不错的爬虫框架,极力推荐下: phpspider一款优秀的PHP开发蜘蛛爬虫 官方下载地址:https://github.com/owner888/phpspider 官方开发手册:https://doc.phpspider.org/ QueryList使用jQuery选择器来做采集,告别复 阅读全文
posted @ 2018-09-15 07:24 周伯通之草堂 阅读(7674) 评论(0) 推荐(0) 编辑
摘要:之前记得写过这2者的区别,今天看群里有个朋友也提出了怪异的问题,说是“file_get_contents('php://input')获取不到curl post请求的数据的问题”?其实这并不是所谓的"怪异",理解2者的区别其实就明白原因啦,好,直接举个例子吧,2个文件:1:发送数据的文件,如下: 2 阅读全文
posted @ 2018-09-02 17:03 周伯通之草堂 阅读(25137) 评论(0) 推荐(2) 编辑
摘要:使用date_parse_from_format 可以转换指定的格式:举个例子: 输出: mktime()定义和用法 gmmktime() 函数返回日期的 UNIX 时间戳。 提示:该函数与 gmmktime() 相同,不同的是传递的参数代表了日期(而不是 GMT 日期)。 语法 mktime(ho 阅读全文
posted @ 2018-09-02 15:21 周伯通之草堂 阅读(5672) 评论(0) 推荐(0) 编辑
摘要:我们经常把不经常变的值定义成常量,常量一般用全部大写来表示,前面不加美元符号,那么define和const有什么区别呢? 常量是一个简单的标识符。在脚本执行期间该值不能改变(除了所谓的魔术常量,他们其实不是常量)。常量默认大小写敏感。通常常量标识符总是大写的。 可以用define()函数来定义常量。 阅读全文
posted @ 2018-06-27 16:14 周伯通之草堂 阅读(400) 评论(0) 推荐(0) 编辑
摘要:Restful API的概念在此就不费口舌了,博友们网上查哈定义文章很多,直入正题吧: 首先抛出一个问题:判断id为 用户下,名称为 使命召唤14(COD14) 的产品是否存在(话说我还是很喜欢玩类似二战的使命召唤这款额,题外话...)?如果这个问题出现在 MVC 项目中,我想我们一般会这样设计: 阅读全文
posted @ 2018-06-22 22:41 周伯通之草堂 阅读(1333) 评论(0) 推荐(0) 编辑