当前位置:  编程技术>php
本页文章导读:
    ▪利用Memcached在php下实现session机制 替换PHP的原生session支持       方法文件 session实现文件:memcachedsession.php 实现原理(也是PHP内部session的实现原理): 1.先判断客户端有没有sessionid, a.没有就添加一个sessionid给客户端,通常是32位hash码,同时初始化一个数组.........
    ▪ThinkPHP中实例Model方法的区别说明       在TP中,我们可以用下面两种方法去创建一个数据表的映射对象(我暂时用到的) 第一种:$Test = D('Test') 第二种:$Test = new Model('Test') 虽然这两种都可以对数据进行select,insert,delete,udpate操作.........
    ▪PHP 数组基础知识小结       php函数有很多,需要时查询api。 代码如下: <?php /* #数组 没有限制大小:$arr[0]=1;$arr[1]=2; $arr=array("0","1");$list($num1,$num2)=$arr; array range(int low,int high[,int step]) low最小数,high最高数,step步长 int.........

[1]利用Memcached在php下实现session机制 替换PHP的原生session支持
    来源: 互联网  发布时间: 2013-11-30
方法文件
session实现文件:memcachedsession.php
实现原理(也是PHP内部session的实现原理):
1.先判断客户端有没有sessionid,
a.没有就添加一个sessionid给客户端,通常是32位hash码,同时初始化一个数组做session容器
b.如果客户端有sessionid,则利用这个sessionid去memcached里面查数据。
2.用户在页面执行过程中可以自行修改session容器里的session值
3.页面最后会把用户的session容器作为值,以用户的sessionid作为键,把这个键值对保存到
memcached里面
代码如下:

<?php
//memcached服务器连接地址
$_MEMCACHEAUTH = array(
'host' => 'localhost'
, 'port' => 11211
);
/*
获取一些初始化设置值
*/
$_SESSION_NAME = ini_get("session.name"); //sessionid的名称
$_SESSION_TIME = ini_get("session.cookie_lifetime"); //sessionid这个cookie的最大保存时间
$_SESSION_EXPIRE = ini_get("session.gc_maxlifetime"); //session键值对在memcached里面的过期时间
$_SESSION_MEMKEY = ""; //sessionid值
/*
自定义的_session_start()方法,替换PHP的原生session_start()方法
逻辑应该是比较清楚的
*/
function _session_start()
{
global $_SESSION_NAME, $_SESSION_TIME, $_SESSION_MEMKEY;
global $_SESSION;
global $_MEMCACHEAUTH, $_sessionmem;
$_sessionmem = memcache_connect($_MEMCACHEAUTH['host'], $_MEMCACHEAUTH['port']);
if ( empty($_COOKIE[$_SESSION_NAME]) )
{
$_SESSION_MEMKEY = md5( uniqid() );
setcookie($_SESSION_NAME, $_SESSION_MEMKEY , $_SESSION_TIME, "/");
$_SESSION = array();
}
else
{
$_SESSION_MEMKEY = $_COOKIE[$_SESSION_NAME];
$_SESSION = memcache_get($_sessionmem, $_SESSION_MEMKEY );
if ( $_SESSION === FALSE )
{
$_SESSION = array();
}
}
//注册一个handler,这个函数会在页面执行完的时候执行
register_shutdown_function("_session_save_handler");
}
/*
页面最后执行的方法,用于保存session值,以及关闭memcached连接
*/
function _session_save_handler()
{
global $_sessionmem;
global $_SESSION, $_SESSION_NAME, $_SESSION_EXPIRE, $_SESSION_MEMKEY;
memcache_set($_sessionmem, $_SESSION_MEMKEY, $_SESSION, 0, $_SESSION_EXPIRE);
memcache_close($_sessionmem);
}
?>

测试文件:
设置session值
代码如下:

<?php
/*
设置session值文件:session_set.php
*/
include_once "memcachedsession.php";
_session_start();
$_SESSION['a'] = time();
?>

获取session值
代码如下:

<?php
/*
获取session值文件:session_get.php
*/
include_once "memcachedsession.php";
_session_start();
function getsession()
{
echo $_SESSION['a'];
}
getsession();
?>

Memcached的缓冲应用还是非常不错滴,呵呵,,,
转载:jincon's 包 blog http://www.yi1.com.cn

    
[2]ThinkPHP中实例Model方法的区别说明
    来源: 互联网  发布时间: 2013-11-30
在TP中,我们可以用下面两种方法去创建一个数据表的映射对象(我暂时用到的)
第一种:$Test = D('Test')
第二种:$Test = new Model('Test')
虽然这两种都可以对数据进行select,insert,delete,udpate操作,在数据验证上有很大的不同,
我们来看看效果,先创建一个 TestModel
代码如下:

class TestModel extends Model{
protected $_validate = array{
array('title','require','请输入标题',1),
array('content','require','请输入内容',1),
}
}

创建一个TestAction
代码如下:

class TestAction extends Action{
public function Dtest(){
$test = D('Test'); //第一种情况
$test = new Model('Test'); //第二种情况
if($test->Create()){
$test->Add();
}else{
$test->getError();
}
}
}

在运行的时候,大家会发现,用第一种方式实例一个模型就会有数据检查功能,如果 title 没有填写的话就会提示 “请输入标题” (这个是tp提供的一个自动验证功能,当然也需要在相应的model中定义好验证条件);如果用第二种就没有了·····

    
[3]PHP 数组基础知识小结
    来源: 互联网  发布时间: 2013-11-30
php函数有很多,需要时查询api。

代码如下:

<?php
/*
#数组 没有限制大小:$arr[0]=1;$arr[1]=2; $arr=array("0","1");$list($num1,$num2)=$arr;
array range(int low,int high[,int step])
low最小数,high最高数,step步长
int array_unshift(array array,mixed vari) 数组前面插入
array_push 数组尾添加
array_shift 数组头部删除
array_pop 数组尾部删除
#定位数组
boolean in_array(mixed needle,array haystack,[,boolean strict])
boolean array_key_exists(mixed key,array array) 搜索关键键
array_search() 搜索关联数组值
array_keys()返回数组,包含所搜索的的所有键
array_values()返回数组所有值。
#遍历数组
mixed key(array array)
current(array array) 获取当前数组值
array each(array array) 返回当前键、值对
next(array array) 指向下一个
prev(array array) 移到前一个
reset(array array)移到第一个
end(array array)移到最后一个
#向函数传递数组值
boolean array_walk(array &array,callback function,[,mixed userdata])
#确定数组的大小及唯一性
integer count(array array[,int mode]) 类似sizeof()
array array_count_values(array array) 分组统计每个值出现的次数
array_unique() 删除重复值,保持唯一性
#排序
array_reverse()顺序逆置
array_flip() 对换键与值
void sort(array array[,int sort_flags])
sort_flgs{[SORT_NUMBERIC数值排序],[SORT_REGULAR 按ASCII排序],[SORT_STRING]}
asort()升序
rsort()逆序
arsort()逆序
natsort()自然排序
natcasesort()不区分大小写自然排序
ksort()键值排序
krsort()逆序键值排序
void usort(array array,callback function name) 用户自定义排序
#合并,拆分,结合,分解数组
array_merge_recursive() 合并
array_merge_combine() 追加
array_merge()连接到新数组
array_slice(array array,int offse[,int length]) 拆分
array_intersect()、array_intersect_assoc()数组交集
array_diff()、array_diff_assoc()差集
array_rand()、shuffle()随机数组
array_sum()求和
array_chunk 分成多维数组
*/
//创建0-20的偶数数组,2为步长
$even=range(0,20,2);
//打印数组
print_r($even);
//判断是否为数组
printf("this number is an array:%s<br/>",(is_array($even)?"true":"false"));
echo "<br>";
//数组头部添加子项,并打印
array_unshift($even,522,54);
print_r($even);
//定义一变量,然后在数组中搜索,存在时显示找到该变量。
$sa=522;
if(in_array($sa,$even)){
echo "find it $sa";
};
echo "<br/>";
//搜索数组关键键
if(array_key_exists(4,$even)){
echo $even[4]." exists.";
}
echo "<br/>";
print_r(array_values($even));
//遍历打印数组
while($key=key($even)){
echo "<br/>".$key;
next($even);
}
//统计数组大小
echo "<br/>";
echo count($even);
//排序
echo "<br>";
sort($even);
print_r($even);
?>

    
最新技术文章:
▪PHP函数microtime()时间戳的定义与用法
▪PHP单一入口之apache配置内容
▪PHP数组排序方法总结(收藏)
▪php数组排序的几个函数(附实例) iis7站长之家
▪php数组排序的几个函数(附实例)
▪php二维数组排序(实例)
▪php根据键值对二维数组排序的小例子
▪php验证码(附截图)
▪php数组长度的获取方法(三个实例)
▪php获取数组长度的方法举例
▪判断php数组维度(php数组长度)的方法
▪php获取图片的exif信息的示例代码
▪PHP 数组key长度对性能的影响实例分析
▪php函数指定默认值的方法示例
▪php提交表单到当前页面、提交表单后页面重定...
▪php四舍五入的三种实现方法
▪php获得数组长度(元素个数)的方法
▪php日期函数的简单示例代码
▪php数学函数的简单示例代码
▪php字符串函数的简单示例代码
▪php文件下载代码(多浏览器兼容、支持中文文...
▪php实现文件下载、支持中文文件名的示例代码...
▪php文件下载(防止中文文件名乱码)的示例代码
▪解决PHP文件下载时中文文件名乱码的问题
▪php数组去重(一维、二维数组去重)的简单示例
▪php小数点后取两位的三种实现方法
▪php Redis 队列服务的简单示例
▪PHP导出excel时数字变为科学计数的解决方法
▪PHP数组根据值获取Key的简单示例
▪php数组去重的函数代码示例
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3