PHP开发工程师@温州。博客关于:技术、生活、读书、互联网。

PHP解析行政区划代码

1.获取数据源

到国家统计局下载最新行政区划代码

http://www.stats.gov.cn/tjsj/tjbz/xzqhdm/

保存为data.txt


通过对ID进行分析,可以发现

  1. ID一共6位

  2. 若2-6位为0000,则为省级,可以认定其父ID为1(中国)

  3. 若5-6为00,则为市级,其父ID为 自己ID前2位+0000(省)

  4. 其他则为区县,其父ID为 自己ID前4位+00


2.编写PHP解析为标准JSON数据

$file = fopen('data.txt', 'r');

$area = array();...

linux下的定时任务crontab

[环境centos 6.5]


前言

crontab命令常见于Unix和类Unix的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中(/var/spool/cron/以用户命名的文件),以供之后读取和执行。该词来源于希腊语 chronos(χρνο),原意是时间。

通常,crontab储存的指令被守护进程 - crond激活在后台运行,每一分钟检查是否有预定的作业需要执行。这类作业一般称为cron jobs。


启动crond进程

service crond start

若没安装请先安装:

yum...

浏览器安全策略说之内容安全策略CSP

[转载自http://xisigr.com/x/content-security-policy/]


〇  前言

2013年11月Veracode给出的报告指出,全球前1000000网站中仅有269个网站使用了W3C规范的CSP策略头Content-Security-Policy。而在2014年2月ZoomEye给出的测试报告中,国内排名前7000的域名没有使用CSP,国内1千万的域名(含子域名)中仅发现7个使用了CSP策略,其中还有3个网站CSP语法使用错误。


如果说CSP是一个伟大的安全策略,为何全球范围内网站使用率如此之低?是CSP自身的设计存在问题,还是...

Restful架构及其技术可行性

RESTful简介

RESTful (Representation State Transfer) 描述了一个架构样式的网络系统,比如 web 应用程序。它首次出现在 2000 年 Roy Fielding 的博士论文中,他是 HTTP 规范的主要编写者之一。RESTful 指的是一组架构约束条件和原则,满足这些约束条件和原则的应用程序或设计就是 RESTful。


这里对什么是RESTful不作详细的论述,具体大家可以参考阮一峰的博客http://www.ruanyifeng.com/blog/2011/09/restful.html


简单来说,RESTful

Intervention Image - 让PHP处理图片更加简单

简介
Intervention Image是一个基于PHP GD库的图片处理库。
相对于使用PHP原生图片处理函数的复杂和繁琐,该库能让我们处理图片变得更加的简单和富有表现力。

github : https://github.com/Intervention/image
官方文档 : http://intervention.olivervogel.net/image/getting_started/introduction

Intervention Image使用
Intervention Image的安装和使用都十分的简单,安装只需敲一下composer install...

Sentry - PHP的身份及权限验证解决方案

简介

Sentry是一个简单而强大的身份及权限验证框架,提供了用户组、权限、自定义哈希算法及其他一些安全特性,致力于让开发者快速建立一个权限管理系统。

官网:https://cartalyst.com/manual/sentry

github:https://github.com/cartalyst/sentry


安装

Sentry可以方便的使用composer进行独立安装或集成到Laravel、CodeIgniter等框架。这里说下集成Sentry到Laravel4框架,其他方式的安装也都大同小异。

  1. 在composer.json配置文件中添加依赖:{"require...

在PHP中使用password_hash()让你的密码更加安全

前言

PHP5.5提供了许多新特性及Api函数,其中之一就是Password Hashing API(创建和校验哈希密码)。
它包含4个函数:password_get_info()、password_hash()、password_needs_rehash()、password_verify()。

在PHP5.5之前,我们对于密码的加密可能更多的是采用md5或sha1之类的加密方式(没人像CSDN那样存明文吧。。),如:
echo md5("123456"); //输出: e10adc3949ba59abbe56e057f20f883e

但是简单的md5加密很容易通过字...

php自动加载规范:PSR-0

[翻译自官网http://www.php-fig.org/psr/psr-0/]


自动加载规范
下面描述了自动加载操作时必须遵守的强制要求。

要求:

  • 一个完全合格的命名空间和类名必须有以下的结构 \<Vendor Name>\(<Namespace>\)*<Class Name>

  • 每个命名空间必须有提供者名称("Vendor Name")作为顶级的命名空间

  • 每个命名空间可以有多个子命名空间

  • 每个命名空间在被从文件系统加载时须将分隔符转换为"系统分隔符"(DIRECTORY_SEPARATOR...

PHP编码规范

PHP社区百花齐放,拥有大量的函数库、框架和组件。
PHP开发者通常会在自己的项目中使用若干个外部库,因而PHP代码遵循或尽量接近同一个代码风格就非常重要,可以让开发者方便地把多个代码库集成在自己的项目中。


框架互操作组(PHP Framework Interoperability Group)发布了一系列代码风格推荐标准,即PSR规范(Proposing a Standard Recommendation)。


目前已有5个代码规范:

Wordpress插件开发

Wordpress插件允许你通过一种简单的方式来修改、定义和强化博客的功能。
你可以在不修改WordPress的核心代码的情况下,通过插件来直接向WordPress中增加功能。
WordPress插件可以是一个程序,也可以是PHP语言编写的一个或一组函数。
它可以通过插件 API提供的一系列方法和接口,来向WordPress中增加一些特定的功能或服务,并且让它们看上去就像是WordPress原有的功能一样。


钩子机制、动作和过滤器

在说开发wordpress插件之前先讲下wordpress中的钩子机制。

WordPress 中有一种钩子机制,允许插件把一些功能“挂载”到 WordPress...

wordpress主题开发教程

WordPress是一种使用PHP语言开发的博客平台,免费、开源。

作为最流行的博客平台,海量的插件和主题可以说是WordPress 最大的特色了,没有哪一个Blog 平台拥有如此多的插件和主题,拥有如此多的用户和爱好者。


下面介绍如何开发设计你自己的 WordPress 主题。


主题的剖析

WordPress主题目录位于 wp-content/themes/。主题目录拥有所有样式文件、模板文件、可选的函数文件 (functions.php)、JavaScript 文件、图片等。比如说一个叫做 "test" 的主题就会...

PHP内置的Web Server的使用

自PHP5.4之后 PHP内置了一个Web 服务器。

让我们来看看php Web Server的简单使用:


启动php Web Server

php -S localhost:8080


通过 php -S 命令即可启动PHP自带的Web Server,后面跟网络地址及监听的端口号,默认的网站根目录为当前目录。访问http://localhost:8080


指定网站根目录,-t命令

php -S localhost:8080 -t /www


支持远程访问

php -S 0.0.0.0:8080 -t /www...

使用PHP获取所有的汉字

<?php

header('Content-Type: text/html;charset=utf8'); 

$start = hexdec('4e00'); $end = hexdec('9fa5');

 for($i=$start; $i<$end; $i++) { 

    print_r(json_decode('["\u'.dechex($i).'"]'));

}


4e00为汉字十六进制的下界,9fa5...

Nginx + php构建高性能web服务器

很早就搭建过了,这里就做个笔记吧。


nginx : 一个高性能的 HTTP 和 反向代理 服务器,由俄罗斯的程序设计师Igor Sysoev所开发,其特点是占有内存少,并发能力强。

官网:http://nginx.org/


php : 最流行的web开发语言。

官网:www.php.net/


安装前装备: 

1. 去官网下载最新版本 PHP-5.5.5.tar.gz和nginx-1.4.3.tar.gz

2. 安装一些相关的依赖库 

brew install zlib libmcrypt...

使用Composer来管理PHP的依赖包

如今有大量的PHP函数库、框架和组件可供选择,一个项目中可能会使用其中的若干——这就是项目的依赖。到目前为止,PHP还没有有效的 项目依赖管理方案。即使你手工的管理它们,你还不得不处理它们的自动加载问题。

Composer 是PHP(5.3.2+)中用来管理依赖(dependency)关系的工具。你可以在自己的项目中声明所依赖的外部工具库(libraries),Composer会帮你安装这些依赖的库文件,并配置好自动加载路径。。


全局安装Composer (环境为mac OSX 10.8.4) 

$ curl -sS https://getcomposer....

© 袁克强的博客 | Powered by LOFTER