阳光部落2018端午小改版

变化如下:

  1. 调整了栏目设置,将原有的“编程开发”、“数据库”、“操作系统”和“软件应用”四个分类统一归入“技术”分类下。
  2. 调整了导航的显示位置,移到了页面最顶端。
  3. 更换了代码高亮显示的样式,新样式使用的是 Sublime text 风格。

欢迎各博主和本站建立友链,联系方式:jasonwei06@hotmail.com

PHP 开源框架 MiniFramework 发布 1.1.0 版

MiniFramework 是一款遵循 Apache2 开源协议发布的,支持 MVC 和 RESTful 的超轻量级 PHP 开发框架。MiniFramework 能够帮助开发者用最小的学习成本快速构建 Web 应用,在满足开发者最基础的分层开发、数据库和缓存访问等少量功能基础上,做到尽可能精简,以帮助您的应用基于框架高效运行。

MiniFramework于2018年6月10日发布1.1.0版本,变化有:

* 新增Captcha类,用于生成和校验图片验证码
* 新增Registry类的unset方法,用于删除已注册的变量
* 新增全局函数browserDownload(),用于让浏览器下载文件
* 在App目录中,新增名为Example的控制器,其中包含部分功能的示例代码

MiniFramework 1.1.0 版本下载地址
zip格式:https://github.com/jasonweicn/MiniFramework/archive/1.1.0.zip
tar.gz格式:https://github.com/jasonweicn/MiniFramework/archive/1.1.0.tar.gz

MiniFramework 快速入门文档
地址:http://www.miniframework.com/docv1/guide/

近期版本更新主要变化回顾:

1.0.13

* 改进Db_Mysql中的execTrans方法
* 改进渲染特性
* 新增全局函数isImage(),用于判断文件是否为图像格式
* 新增全局函数getStringLen(),用于获取字符串长度(支持UTF8编码的汉字)

1.0.12

* 新增Session类,用于读写会话数据

1.0.11

* 改进转换伪静态地址分隔符的机制
* 优化路由处理伪静态时的性能
* 优化部分核心类的属性
* 优化框架内存占用

MiniFramework新增了图片验证码输出和校验功能

今天为 MiniFramework 新增了一个名为 Captcha 的类,用于图片验证码的输出和校验。

具体用法如下:

用 MiniFramework 新建一个名为 Example 的控制器,例如:

 

同时创建视图,代码如下:

 

创建完成后,访问 http://你的域名/example/captcha 即可看到效果。

上边的代码已经包含在 MiniFramework 位于 GitHub 的 master 主线上。

GitHub源代码地址:https://github.com/jasonweicn/MiniFramework

采用http协议做IM拉取消息的流程设计

接手一个在线客服的项目,本质上就是一个 IM 项目。

第一个想到的是用 WebSocket,然而一些客观因素导致这个项目很难采用 WebSocket 来做。那么,就只好用 http 实现,并为此设计了如下流程:

如图,首先 Browser 端发起一个拉取消息的请求。Server 端收到请求后,立即查询是否有新消息,如查询到了新消息,则立即返回结果给 Browser 端。

Browser 端收到返回结果后,再次发起一个新的拉取消息的请求,如此往复进行。

若 Server 端接到拉取请求后,没有查询到新消息,则 Hold 住这个请求进程,同时设置一个时间阈值,比如5秒。

在这5秒内,Server 端反复查询是否有新消息,当发现了新消息后,则立即向 Browser 端返回结果同时结束掉进程。若始终都没有新消息,则在达到预设的时间阈值后,向 Browser 端返回一个通知,告知 Browser 端这次没有新消息。

在这个流程中,Browser 端发出请求后,可能会立即收到结果,也可能在5秒后得知没有新消息,不论是否有新消息,在得到 Server 端反馈后,都要立即再次发出请求。

阳光部落原创,更多内容请访问http://www.sunbloger.com/

利用Swoole实现服务器通过WebSocket主动向浏览器推送数据

WebSocket 协议是基于 TCP 的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信,允许服务器主动发送信息给客户端。

下面的代码演示了利用 Swoole 实现服务器向浏览器主动推送数据的例子。

Server端代码:

 

浏览器端(Client)代码:

 

阳光部落原创,更多内容请访问http://www.sunbloger.com/

在XAMPP中为PHP安装YAML扩展

YAML 简介

YAML(是 YAML Ain’t Markup Language 的缩写,尾音的发音类似 Camel)是一种序列化数据的语言(类似 JSON 和 XML ),使用轻量高可读性的语法描述 list 和 dict 等数据结构。

在 XAMPP 中安装 YAML 扩展

首先,根据你本地的 PHP 版本,去 http://pecl.php.net/package/yaml/ 下载 dll。

将下载的压缩包解开后,把其中的 php_yaml.dll 拷贝到你的 php 扩展目录下(例如:C:\xampp\php\ext)。并将压缩包中的 yaml.dll 拷贝到你的 XAMPP 根目录下。然后重启 apache,通过 phpinfo() 查看是否安装成功。

阳光部落原创,更多内容请访问http://www.sunbloger.com/

用Python3提取网页中的超链接

最近有朋友给我指出,我此前写的博文《用Python提取网页中的超链接》(原文地址:http://www.sunbloger.com/article/442.html)中,给出的代码在Python3下运行报错。下面给出在Python3的代码写法:

 

阳光部落原创,更多内容请访问http://www.sunbloger.com/

汇总PHP最常见的四种排序算法

PHP最常见的四种排序算法分别是:冒泡排序法,选择排序法、插入排序法和快速排序法。下面我们就分别给出四种排序算法的实现代码,供大家参考。

1.冒泡排序法

 

2.选择排序法

 

3.插入排序法

 

4.快速排序法

 

阳光部落原创,更多内容请访问http://www.sunbloger.com/

在CentOS环境为PHP安装Memcached扩展

首先,安装PHP的Memcached扩展前,要先安装其所依赖的libmemcached,方法如下:

 

libmemcached安装完毕后,就可以开始安装Memcached扩展了,方法如下:

 

解压缩后,我们需要先修改一下php_libmemcached_compat.h文件
将#include 的路径修改成#include </usr/local/include/libmemcached/memcached.h>然后再继续编译安装

 

最后,还要修改php.ini文件,加入extension=memcached.so并重启php-fpm即可。

阳光部落原创,更多内容请访问http://www.sunbloger.com/