一般使用文件方式的缓存就能够满足要求,而thinkPHP还提供了一个专门用于文件方式的快速缓存方法F方法。
由于采用的是PHP返回方式,所以其效率较S方法较高。
F方法具有如下特点:
1.简单数据缓存;
2.文件形式保存;
3.采用PHP返回数据方式加载缓存;
4.支持子目录缓存以及自动创建;
5.支持删除缓存和批量删除;
thinkPHP的F方法只能用于缓存简单数据类型,不支持有效期和缓存对象。S()缓存方法支持有效期,又称动态缓存方法,使用示例如下:
// 使用data标识缓存$Data数据
S('data',$Data); //前面的是缓存标示,后面的是缓存的数据
PHPAnalysis是目前广泛使用的中文分词类,使用反向匹配模式分词,因此兼容编码更广泛,现将其变量与常用函数详解如下:
一、比较重要的成员变量
$resultType = 1 生成的分词结果数据类型(1 为全部, 2为 词典词汇及单个中日韩简繁字符及英文, 3 为词典词汇及英文)
开发人员要想使php进程实现共享内存的读写,首先就要支持IPC函数,即php编译安装时指定:--enable-shmop 与--enable-sysvsem 两个选项。
IPC (Inter-process communication) 是一个Unix标准机制,它提供了使得在同一台主机不同进程之间可以互相的方法。基本的IPC处理机制有3种:它们分别是共享内存、信号量和消息队列。本文中我们主要讨论共享内存和信号量的使用。
在不同的处理进程之间使用共享内存是一个实现不同进程之间相互的好方法。如果你在一个进程中向所共享的内存写入一段信息,那么所有其他的进程也可以看到这段被写入的数据。非常方便。在PHP中有了共享内
很多php开发人员都知道, 使用类的静态成员函数效率比类的普通成员函数的要高,本文从应用层次分析这个问题
下面是一个范例:
<?php // php静态方法测试
header('Content-Type: text/html; charset=utf-8');
class xclass{
public static $var1 = 'camnprCamnprcamnprCamnprCamnpr';
方法一:采用in_array(value,array,type)
type 可选。如果设置该参数为 true,则检查搜索的数据与数组的值的类型是否相同。
$arr = array('可以','如何','方法','知道','沒有','不要');
最近有一个需求,我需要把一个导航页的数据整理好写入数据库。一个比较直观的方法是对html文件进行分析,通用的方法是用php的正则表达式来匹配。但是这样做开发和维护都很困难,代码可读性非常差。
导航页的数据都是规则的排列在DOM树当中的,用JS可以用几个循环轻松的对其进行操作,而且JS需要依赖浏览器,操作数据库很困难。其实PHP就有现成的类库对DOM树种的节点进行增删改查操作,在此做一些笔记。
这里涉及到2个类 DOMDocument 和 DOMXPath。
其实思路比较明确,就是通过DOMDocument将一个html file转换成DOM树的数据结构,再用DOMXPath的实例去搜索这个DOM树,拿到想要特定节点,接下来就可以对当前节
初学ThinkPHP时,ThinkPHP中的关联模型有一处易错点,现举例如下:
需用到的表:id_elite_major和id_elite_student
代码举例如下:
class EliteMajorModel extends RelationModel{
protected $_link=array(
'EliteStudent'=>array(
'mapping_type'=>HAS_MANY, //易错点: 此处在 HAS_MANY 时常会加上 '' 容易写成 'HAS_MANY',导致出错
昨天项目中卡住了,在thinkPHP的create()方法上遇到了问题,所以跟踪了create(),从而进一步探究了create()方法。
原来create()方法原来有两个参数,第一个参数就是众所周知的数据参数,第二个是隐藏的$type参数,那么这个参数用来控制什么的呢?
// 状态$type = $type?$type!empty($data[$this->getPk()])?self::MODEL_UPDATE:self::MODEL_INSERT);
仔细琢磨了这句话才发现,这个隐藏参数是用来指明本次数据库具体是什么操作的,1即为插入操作,
在php5中读写xml文档是非常方便的,可以直接使用php的SimpleXML方法来快速解析与生成xml格式的文件,下面举例说明:
创建一个SimpleXML对象有三种方法:
1.使用new关键字创建
$xml="<personinfo><item><id>1</id><name>aaa</name><age>16</age></item>