最近的文章列表

详解Discuz!X中Session机制实例代码

在Discuz! X中一如继往的,SESSION 并没有使用 PHP 自带的 SESSION 机制,而是系统的一套自带的机制。

在数据库中可以看到有两个 SESSION 表:
一个是pre_common_adminsession,是管理员登录后台的 SESSION 表;
另一个是 pre_common_session 表,是所有用户在前台浏览页面时的 SESSION 表。
这两个表都是内存表(内存表的读写速度远高于 MYISAM 表及文本文件)。

在 Discuz! X 中 SESSION 与 COOKIE 是分不开的,因为 SESSION 就是从客户端读取的 COOKIE ,
然后由浏览页面时触发相关的函数执行,再写入数据库 SESSION 表。

我以登录流程为例来讲解程序具体是如何执行的。

2016/1/25 Comments:
详解php中session_id()函数,会话id生成过程及session id长度

php中session_id()函数原型及说明session_id()函数说明:stringsession_id([string$id])session_id() 可以用来获取/设置 当前会话 ID。为了能够将会话 ID 很方便的附加到 URL 之后, 你可以使用常量 SID 获取以字符串格...

php中session_id()函数原型及说明

session_id()函数说明:

string session_id ([ string $id ] )

 

2016/1/22 Comments:
如何通过(nginx+php)修改配置来解决php文件上传大小限制问题
max_execution_time = 300max_input_time = 600

前面已经介绍过apache+php下如何解决php文件上传大小限制问题。那么对于nginx+php网站,与apache+php下如何解决php文件上传大小限制问题不同的就是nginx本身的限制,限制了客户端上传文件的大小,这里以nginx为例说明nginx+php下如何解决这个问题。

1.nginx配置项修改

   修改/usr/local/nginx/conf/nginx.conf 文件,查找 client_max_b

2016/1/21 Comments:
分享实现php简单的MVC框架实例代码

在开始之前需要知道的知识

1.php基础知识

2.单一入口, 不知道的可以看看这里 (http://camnpr.com/php-python/2234.html)

具备以上两点, 那我们就可以开始啦. 哈哈!

先来说一下程序的执行流程

首先有个入口文件, 然后初始化一些程序, 之后根据请求调用不同的类和方法

首先我们弄一个入口文件 Index.php 来看看代码

<?php
require "Init.php";
2016/1/20 Comments:
分析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: