js中的call(), apply()和bind()是Function.prototype下的方法,都是用于改变函数运行时上下文,最终的返回值是你调用的方法的返回值,若该方法没有返回值,则返回undefined。这几个方法很好地体现了js函数式语言特性,在js中几乎每一次编写函数式语言风格的代码,都离不开call和apply,能够熟练运用它们,是真正成为一名jser程序员的重要一步。 Continue reading
Composer采集功能扩展插件QueyListy
thinkphp thinkCMF Composer采集功能扩展插件QueyListy
安装 composer require jaeger/querylist
——————————
QueryList 简介
QueryList
是一套简洁、优雅、可扩展的PHP采集工具(爬虫),基于phpQuery。
特性
- 拥有与jQuery完全相同的CSS3 DOM选择器
- 拥有与jQuery完全相同的DOM操作API
- 拥有通用的列表采集方案
- 拥有强大的HTTP请求套件,轻松实现如:模拟登陆、伪造浏览器、HTTP代理等意复杂的网络请求
- 拥有乱码解决方案
- 拥有强大的内容过滤功能,可使用jQuey选择器来过滤内容
- 拥有高度的模块化设计,扩展性强
- 拥有富有表现力的API
- 拥有高质量文档
- 拥有丰富的插件
- 拥有专业的问答社区和交流群
通过插件可以轻松实现诸如:
- 多线程采集
- 采集JavaScript动态渲染的页面 (PhantomJS/headless WebKit)
- 图片本地化
- 模拟浏览器行为,如:提交Form表单
- 网络爬虫
- …..
Continue reading
Layui hint: Table modules: Did not match to field
Layui报错:Layui hint: Table modules: Did not match to field
有两种可能:
1、 table.render 时,某个列中填写了一个字段名,在返回的数据中没有匹配到。
2、在使用initSort时,字段名不匹配。
3、模板中使用的不存在的字段。
50 个最佳的轻量级 JavaScript 框架和库
正如你期望的,文中的一些插件可用来创建滑块、图片库、响应式菜单、弹出式窗口以及许多其他常见的组件。同时,你也可以发现一些能够提供独特功能的插件,像旁注工具、GIF 预览、动画图标等。50 个最佳的轻量级 JavaScript 框架和库,前端框架,前端库,JS框架
或许,你可能还想了解下 2015 年 50 个最佳的 JavaScript 集合,以及 50 个最佳的免费 jQuery 插件。 Continue reading
php时间加减,加一天,一小时
php时间加减,php时间加一天,php时间一小时
0 1 2 3 4 5 6 7 8 9 10 11 12 13 |
<?php date_default_timezone_set('PRC'); //默认时区 echo "今天:",date("Y-m-d",time()),"<br>"; echo "今天:",date("Y-m-d",strtotime("18 june 2008")),"<br>"; echo "昨天:",date("Y-m-d",strtotime("-1 day")),"<br>"; echo "明天:",date("Y-m-d",strtotime("+1 day")),"<br>"; echo "一周后:",date("Y-m-d",strtotime("+1 week")),"<br>"; echo "一周零两天四小时两秒后:",date("Y-m-d G:H:s",strtotime("+1 week 2 days 4 hours 2 seconds")), "<br>"; echo "下个星期四:",date("Y-m-d",strtotime("next Thursday")),"<br>"; echo "上个周一:".date("Y-m-d",strtotime("last Monday"))."<br>"; echo "一个月前:".date("Y-m-d",strtotime("last month"))."<br>"; echo "一个月后:".date("Y-m-d",strtotime("+1 month"))."<br>"; echo "十年后:".date("Y-m-d",strtotime("+10 year"))."<br>"; ?> |
thinkphp5.1中容器(Container)和门面(Facade)的实现
thinkphp 5.1中引入了容器(Container)和门面(Facade)这两个新的类
官方文档已经给出了定义:
容器(Container)实现类的统一管理,确保对象实例的唯一性。
门面(Facade)为容器(Container)中的类提供了一个静态调用接口,相比于传统的静态方法调用, 带来了更好的可测试性和扩展性,你可以为任何的非静态类库定义一个facade类。
深入源码,我们来看看它到底是如何实现的: Continue reading
composer为原有项目新添加扩展的安全方法
composer为原有项目新添加扩展的安全方法,使用composer require new/package
这种方式来安装。
如果需要增加版本号,则composer require "foo/bar:1.0.0"
另外,在手动修改 composer.json 添加扩展包后,composer update new/package
进行指定扩展包更新的方式,也可以正确的安装,不过不建议使用这种方法,因为,一旦忘记敲定后面的扩展包名,就会进入万劫不复的状态。
composer的三个常用命令install, update, require,注意使用环境。 Continue reading
windows用powershell修改文档/文件夹创建时间、修改时间
Linux中修改文件时间属性atime(Access time)、mtime(Modified time)、ctime(Change time)
在Linux中,文件没有“创建时间”这个说法。Linux中的文件的时间属性只有三个:atime(Access time)、mtime(Modified time)、ctime(Change time)。不过,有时有人把ctime理解为create time(创建时间),这是不对的,为什么呢?因为,我们知道一个文件的创建时间只有一次,按这个理论,创建时间是不允许修改的,即一个文件一旦创建,它的ctime值就固定不变;但事实呢?是可以改变的。 Continue reading
百度推送错误提示{“error”:401,”message”:”token is not valid”}
百度推送错误提示{"error":401,"message":"token is not valid"}
按着官方给出的PHP提交数据方法,怎么弄都是上面的提示,曾经放弃过,但是一直过不来那个坎。
这几天有客户来问,要做这个,还给了我一个织梦的百度推送插件,叫我参考。
那插件也是用得百度官方代码,只是做了个封装,没有测试可用性,但是我认为他还是不可用的。
我用重写了脚本,还是不可用。
最后最后的一个测试,恍然大悟,开悟了,哈哈。
就差API地址最后的这个字符&,官方是没有加的,不知道官方代码是在什么环境下可用。