最近的文章列表

分析php实现的单一入口应用程序实例(FleaPHP、CakePHP、symfony、Mojavi、Phing)

什么是单一入口应用程序?

在解释什么是单一入口应用程序之前,我们先来看看传统的 web 应用程序。
news.php 显示新闻列表
news_edit.php 显示新闻编辑页面
这两个页面不但分别实现了两个功能,还成为了应用程序的两个入口。

那什么是入口啊?

打个比方,大家上 WC,都是男生进一个门,女生进一个门。这两个门就是 WC 的两个入口。

呵呵,上面的例子应该很好理解吧。那稍微变换一下,单一入口的概念就很容易理解了。
现在我们是进一个公共 WC,不管男女都是从最外面的入口进入,交了钱以后才分别进两个门。那最外面的入口就是这个 WC 的单一入口。

2016/1/19 Comments:
分享mac/windows电脑下PHPStrom中实用的功能和快捷键大全

有哪些快捷键或者PHPStrom出的特有的功能,让你觉得编写过程变得很舒服和快捷?

CTRL + j 能够快捷的输入常用的代码片段,类似vim的 snipMate,可以加入自定义代码片段

find every thing phpstorm 支持类名、文件名等的单独搜索,我常用的是直接全部搜索。find every thing 需要自定义快捷键

很精确的函数、类名、变量等的定位,支持命名空间。不得不承认做的的确很好,比vim + ctag好太多了

alt + F7 find usages 功能,可以很方便的找到函数在哪里调用了

shift + F6 重命名 可以很方便的重命名方法和变量名等等。甚至文件的重

2016/1/18 Comments:
完美结合ThinkPHP+uploadify+upload+PHPExcel实现无刷新导入数据

直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言。

前端HTML+JQuery  备注Jquery需要1.x版本,不能用2.x版本

1.引入必要文件及上传input

 <load file="__PUBLIC__/js/jquery-1.11.3.min.js" />
<load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" />
<load file="__PUBLIC__/uploadify/uploadify.css" />
2016/1/15 Comments:
解决php设置页面超时时间方法(set_time_limit,max_execution_time,ini_set)

有时候我的页面因为网络卡,会一直转,我想是不是可以给页面设置一个超时时间,多久没反应就提示超时

比如php里的set_time_limit(300)

我想不是php页面也有个超时机制

------解决思路----------------------

php 里不就是set_time_limit() 吗,你还可以设置php.ini中的max_execution_time来改变全局超时时间。

------解决思路----------------------

max_execution_time

------解决思路----------------------

 

2016/1/14 Comments:
【实用】PHP判断字符串长度的两种方法(strlen,isset)

php程序中字符串长度判断,可以使用strlen。

方法一:

$str = ‘aaaaaa';if(strlen($str) > 6){ echo "字符串大于6";}

方法二:

if(isset($str{6}){}

以上两种方法,第二种效率更高些。

在PHP中,所有的变量都是用一个结构-zval来保存的,strlen虽然是直接获取其中的len,但是仍然有一次函数调用,而isset是PHP的语法结构,所以更快!所

2016/1/13 Comments:
如何实现PHP关键词替换的类(避免重复替换,保留与还原原始链接)

php关键词替换的类(避免重复替换,保留与还原原始链接)

本节主要内容:

一个关键词替换的类

主要可以用于关键词过滤,或关键词查找替换方面。

实现过程分析:

关键词替换,其实就是一个str_replace()的过程,如果是单纯的str_replace面对10W的关键词,1W字的文章也只需要2秒左右。

问题所在:

关键词替换了不只一次,比如a需要替换成<a>a</a>,但结果可能是<a><a>a</a></a>等这样。

为此,需要一个方法保护好已经替换了的标签,那么在处理文章之前,就先把

2016/1/12 Comments:
PHP通过哈希算法来实现搜索相似图片

哈希算法

count < =5 匹配最相似
count > 10 两张不同的图片
var_dump(ImageHash::run(‘./1.png', ‘./camnpr.jpg'));

<?php
class ImageHash {
const FILE_NOT_FOUND = '-1';
const FILE_EXTNAME_ILLEGAL = '-2';
private function __construct() {}
public static function run($src1, $src2) {
2016/1/11 Comments:
刷票:通过HTTP_X_FORWARDED_FOR、HTTP_CLIENT_IP、REMOTE_ADDR来看获得客户端IP的方法

刷票,分为多种限制,注册用户,验证码,以及IP限制。这个刷票网站,而不,是这个投票网站,限制了IP。如果要突破限制,我们需要了解如何获得用户的IP。

getenv('HTTP_X_FORWARDED_FOR')
getenv('HTTP_CLIENT_IP')
getenv('REMOTE_ADDR')

 

HTTP_X_FORWARDED_FOR

2016/1/8 Comments:
分析PHP中常见的缓存技术实例

JBLOG在开发的过程中,对性能的优化做了不少工作。为了尽量减少不必要的数据库查询,我对一些数据进行了缓存和静态化处理。

缓存的原理:把一些经常要用到但又很少改动的数据以数组或其它形式存储到一个独立的PHP文件中,然后在需要用到的时候包含进来。

缓存的优点:能够大大减少数据库的查询次数,减轻数据库的压力,提高程序的执行效率。

JBLOG缓存的数据有:系统设置、博客分类、侧栏最新日志、最新评论、博客统计、日志归档、友情链接、标签等。通过缓存这些数据,执行一次页面数据库的查询次数从十几次减少到3次。

JBLOG中与缓存相关的函数保存在include目录下的cache.func.php里,主要函数:

//刷新缓存
function recache($cachestr = '') {
if (!$cachestr) {
$cachelist = array('config','class','archive','newcomment','newpost','link','tag','statistic','topblog');
2016/1/7 Comments:
汇总20个提高PHP编程效率要点(技术点)

用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则 不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加 上了双引号)。

    1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。

        2、$row['id'] 的速度是$row[id]的7倍。

  3、echo 比 print 快,并且使用echo的多重参数(译注:指用逗号而不是句点)代替字符

2016/1/6 Comments: