php
文章平均质量分 74
andyliu
会使用phpjshtmlubuntu我的微博http://weibo.com/u/2459274251
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
coreseek 增量索引模拟实时索引
有这么一种常见的情况:整个数据集非常大,以至于难于经常性的重建索引,但是每次新增的记录却相当地少。一个典型的例子是:一个论坛有1000000个已经归档的帖子,但每天只有1000个新帖子。在这种情况下可以用所谓的“主索引+增量索引”(main+delta)模式来实现“近实时”的索引更新。这种方法的基本思路是设置两个数据源和两个索引,对很少更新或根本不更新的数据建立主索引,而对新增文档建立增量原创 2013-06-20 16:52:38 · 4712 阅读 · 5 评论 -
PHP用mkdir()新建立目录无写的权限的问题
<?php$oldumask=umask(0);mkdir('test',0777);umask($oldumask);?>umask()检查并修改当前的umask码,并返回当前的umask码 umask 是什么? 我们创建文件的默认权限是怎么来的?如何改变这个默认权限呢? 当我们登录系统之后创建一个文件总是有一个默认权限的,那么这个权限是怎么来的呢?转载 2013-07-16 09:41:26 · 1868 阅读 · 0 评论 -
coreseek 词库更改
到搜狗词库去下载需要的词库使用深蓝词库转换工具转换为txt格式,深蓝转换工具下载。将txt转换为utf8编码。使用下面代码在服务器上运行,将txt文件转换为coreseek格式的词库。注意文件名<?phpini_set('max_execution_time','6000');$buffer=ini_get('output_buffering');if($buffer)ob_原创 2013-06-19 16:05:23 · 3868 阅读 · 1 评论 -
sphinx coreseek 初探
coreseek的安装参照这里:http://www.coreseek.cn/products-install/install_on_bsd_linux/遇到了一些问题也都在上面的网站中找到了答案下面是我的索引配置文件mysql.conf的内容source mysql{ type = mysql sql_host原创 2013-06-13 14:33:05 · 1745 阅读 · 0 评论 -
PHP扩展开发与内核应用阅读笔记---php的作用域以及如何在扩展中定义,查找php变量
首先提供书的地址:php扩展开发与内科应用,并向作者表示感谢!同时欢迎同看此书的人加入QQ群:767613201:无法在函数中使用在函数外定义的变量的原因由于php中定义的变量是存储在一个用HashTable实现的符号表里。当用户在PHP中调用一个函数或者类的方法时,内核会创建一个新的符号表并激活,这也就是为什么我们无法在函数中使用在函数外定义的变量的原因(因为它们分属两个符号表,一个当前原创 2013-05-08 16:56:54 · 1529 阅读 · 0 评论 -
PHP扩展开发与内核应用阅读笔记---php的内存管理
PHP扩展开发与内核应用----第三章内存管理 阅读笔记!仅作为个人笔记,深入了解请移步:php扩展开发与内科应用再次向作者表示感谢!同时欢迎同看此书的人加入QQ群:76761320内存泄露何为内存泄露:操作内存两个最基本的方法是申请内存,释放内存。如果应用程序向系统申请内存,系统便会在内存中寻找剩余的地方分配给应用程序,并标记下来,以后知道这块内存释放之前其它的应用原创 2013-05-13 14:32:24 · 1376 阅读 · 0 评论 -
PHP扩展开发与内核应用阅读笔记---php的生命周
首先提供书的地址:http://www.walu.cc/phpbook/index.md,并向作者表示感谢!同时欢迎同看此书的人加入QQ群:76761320本章知识点:简单了解SAPIphp的启动与终止php的生命周期线程安全一、SAPI就是PHP和外部环境的代理器, 他把外部环境抽象后, 为内部的PHP提供一套固定的, 统一的接口, 使得PHP自身实现可以不用考虑不同原创 2013-05-06 17:15:23 · 1440 阅读 · 0 评论 -
curl类,可用于模拟get,post和curl下载
<?phpclass Curl { /* * get 方式获取访问指定地址 * @param string url 要访问的地址 * @param string cookie cookie的存放地址,没有则不发送cookie * @return string curl_exec()获取的信息 * @author andy **/ public function原创 2013-05-20 10:09:49 · 4168 阅读 · 0 评论 -
ubuntu 13.04 用c快速编写一个php扩展
本文通过非常快速的方式讲解了如何制作一个PHP 5.4 环境的扩展(PHP Extension)希望能够在图文的方式下让想快速学习的朋友了解一下制作过程。需求:我们要写一个叫two的扩展,这个扩展里面有一个函数叫two_test 功能是输入一个字符串‘hello’ 则,返回this is two: 你输入的字符串是“hello”原创 2013-04-28 16:14:24 · 1580 阅读 · 1 评论 -
PHP stripos() 函数 注意事项
定义和用法stripos() 函数返回字符串在另一个字符串中第一次出现的位置。如果没有找到该字符串,则返回 false。语法stripos(string,find,start)参数描述string必需。规定被搜索的字符串。find必需。规定要查找的字符。start可选。规定开始搜索的原创 2013-04-26 16:12:05 · 2026 阅读 · 0 评论 -
CI框架源码阅读---------基准测试类Benchmark.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-01 09:14:31 · 1939 阅读 · 0 评论 -
php的自动加载机制
一、php中实现自动加载的方法使用require,include,require_once,include_once手工进行加载。使用__autoload来进行自动加载使用spl的autoload来实现自动加载手工加载的实现:当需要加载的文件很少的时候我们可以使用第一个来完成。这样做很简单也没问题。require_once 'a.php';require_on原创 2013-05-07 16:09:42 · 1453 阅读 · 0 评论 -
利用PHP扩展trie_filter做中文敏感词过滤
1.安装libiconv,这个是libdatrie的依赖项wget http://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.14.tar.gz tar zxvf libiconv-1.14.tar.gz cd libiconv-1.14 ./configure make make install2. 安装:libdatrie原创 2014-01-17 10:15:39 · 9333 阅读 · 4 评论 -
自己动手写一个简单的php模板引擎
php 模板引擎 php模板引擎原创 2013-10-18 11:18:15 · 2751 阅读 · 2 评论 -
yii中 集成PHPExcel 实现excel导入
下载PHPExcel 将其解压至extensions目录中 在这个地址下载PHPexcel http://phpexcel.codeplex.com/releases/view/96183下载完成后将其解压至extensions/yiiexcel下 yiiexcel是后来创建的文件夹修改PHPExcel/Autoloader.php文件 将PHPExcel/Autoloader.php文原创 2014-02-21 16:29:13 · 2646 阅读 · 0 评论 -
centos 配置虚拟目录
1、在apache 的/usr/local/apache/conf/httpd.conf文件最后加上以下内容PhpIniDir /etc/php.iniAddType application/x-httpd-php .phpNameVirtualHost *:80Include conf/vhost/*.conf2、在/usr/local/apache/conf/下新建vho原创 2014-01-17 15:36:04 · 5597 阅读 · 0 评论 -
读书笔记---继承与多态
本文均是摘抄自php核心技术与最佳实践这本书。类的组合( 有两个类,一个是person类,一个是family类。在family类中创建person类的对象,把这个视为family类的一个属性,并调用它的方法处理问题,这种附庸方式叫组合。)原创 2013-12-03 17:00:09 · 1083 阅读 · 0 评论 -
sphinx coreseek 多字段进行and查询
数据库表中有一个type_id(分类id) 和一个keyword(关键词)搜索的时候需要先根据分类id进行搜索,比如搜索blog类别下的含有a的数据针对这样的需求可以使用 PHP代码:$cl->SetSortMode ( SPH_SORT_ATTR_DESC, 'pic_id' ); // 按照pic_id 从大到小排序$cl->SetFilter ( 'type_id', $原创 2013-11-14 12:59:03 · 2885 阅读 · 0 评论 -
coreseek 遇到的问题
搜索英文问题问题描述:被搜索名字为:andy这时搜索andy正常,但是搜索a就搜不到。解决办法,在索引配置文件中的index中添加min_infix_len = 1最后还要重新索引一下/usr/local/coreseek/bin/indexer -c mysql.conf mysql --rotate上面的命令不要直接复制确定好自己co原创 2013-06-06 16:09:53 · 1652 阅读 · 0 评论 -
php 的异常处理try catch
1.异常处理的基本概念:代码在try代码块内执行,如果出现错误我们可以使用throw关键字抛出一个异常,程序将在catch代码块内捕获异常。2.异常控制结构:try{ throw new Exception('我是一个异常',1);}catch(Exception $e) { echo $e->getCode().':'.$e->getMessag原创 2013-11-12 22:31:18 · 1871 阅读 · 0 评论 -
CI框架源码阅读---------系统常量文件constants.php
文件位置:Location: ./application/config/constants.php配置系统常量1、当文件系统工作的时候检查并配置这些首选项文件系统运行的时候这些默认的值会适当的增加系统的安全性,但是在php或apache的底层单独的为每各用户开一个进程的时候,使用八进制的值永远是正确的FILE_READ_MODE 读取文件的模式FILE_WRITE_MODE原创 2013-02-28 08:39:22 · 2662 阅读 · 0 评论 -
CI框架源码阅读---------全局函数文件Common.php
文件位置:Location: ./system/core/Common.phpCodeIgniter 使用了一些全局定义的函数来完成操作,在任何情况下你都能够使用这些函数。使用他们不需要载入任何类库或辅助函数。这些函数主要用于加载基类和执行请求。1、 第一个函数is_php 判断当前php版本是否大于指定的php版本,有些地方需要用到这个函数2、 判断文件夹是否有可写权限is_原创 2013-02-25 22:02:39 · 3013 阅读 · 1 评论 -
CI框架源码阅读----程序入口文件
最近在学习CI框架,自己在按照代码执行顺序阅读源码。做了一些笔记。与其自己珍藏不如拿出来和大家分享本人并非大牛,是一名处于成长初期的phper,难免有错误的地方。还希望大家能给予指正。我的CI版本是2.1.3csdn好像不能上传文件,我就讲代码放在笔记下面了。如果觉得能对您有一些可以经常来看,我会不定期更新。知道读完CI源码程序入口:1、 应用程序环境设置developm原创 2013-02-21 17:06:32 · 6719 阅读 · 6 评论 -
php的引用返回和取消引用
一、引用返回引用返回用在当想用函数找到引用应该被绑定在哪一个变量上面时。不要用返回引用来增加性能,引擎足够聪明来自己进行优化。仅在有合理的技术原因时才返回引用!要返回引用,使用此语法:<?phpclass foo { public $value = 42; public function &getValue() { return $this->val原创 2013-02-21 14:35:58 · 1441 阅读 · 0 评论 -
CI框架源码阅读---------钩子类hooks.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-04 09:34:35 · 2032 阅读 · 0 评论 -
php array_multisort 函数 对数据库结果进行复杂排序
首先讲一下需求:数据库中有4个字段分别是id,volume,edition,name. 要求对查询结果按照volume+edition从大到小排序。下面将一下array_multisort函数array_multisort() 可以用来一次对多个数组进行排序,或者根据某一维或多维对多维数组进行排序。关联(string)键名保持不变,但数字键名会被重新索引。排序顺序标志:原创 2013-02-16 15:20:38 · 1576 阅读 · 0 评论 -
打造 Vim IDE
打造 PHP IDE IDE 左侧是目录导航,中间是编辑区域,而右侧则是方法列表,用于在已经打开的文件中快速跳转。在编辑区域按下 CTRL+X 键,还会显示已打开文件的列表。 其他诸如自动补全、代码模板等功能,都应有尽有。看过了漂亮的截图,我们就来一步步打造 PHP IDE 吧。用 NERDTree 实现目录导航在进行 PHP 应用开发时,同时编辑多转载 2012-05-22 16:04:57 · 790 阅读 · 0 评论 -
PHP跳转页面的几种实现方式
PHP页面跳转一、header()函数header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。header()函数的定义如下:void header (string string [,bool replace [,int http_response_code]])可选参数repl转载 2012-05-22 15:17:48 · 1091 阅读 · 0 评论 -
php 递归 实现无限分类 格式化数组
我们要做一个商品的无限分类首先数据库字段为:id ----------商品主键idfid ---------- 商品父idname ---------- 商品名最后输出的数组格式为array( 0=>array( 'id'=>1, 'fid'=>0, 'name'=>'法国货' 'child'=>array( 0=>array(原创 2012-05-27 13:47:00 · 4399 阅读 · 0 评论 -
php xml 常用函数
php xml 常用函数1、DOM 函数a、DOMDocument->load()作用:加载xml文件用法:DOMDocument->load( string filename )参数:filename,xml文件;返回:如果成功则返回 TRUE,失败则返回 FALSE。b、DOMDocument->loadXML()作用:加载xml代码用法:DOMDocume转载 2012-03-16 09:26:38 · 1321 阅读 · 0 评论 -
PHP中内存相关的功能特性
可能有的读者碰到过类似下面的错误吧:Fatal error: Allowed memory size of X bytes exhausted (tried to allocate Y bytes)这个错误的信息很明确,PHP已经达到了允许使用的最大内存了,通常上来说这很有可能是我们的程序编写的有些问题。比如:一次性读取超大的文件到内存中,或者出现超大的数组,或者在大循环中的没有及时是放掉转载 2012-03-15 15:51:37 · 928 阅读 · 0 评论 -
PHP自带的进位制之间的转换函数
bindec() -- 二进制转换为十进制decbin() -- 十进制转换为二进制dechex() -- 十进制转换为十六进制decoct() -- 十进制转换为八进制hexdec() -- 十六进制转换为十进制octdec() -- 八进制转换为十进制base_convert()-- 在任意进制之间转换数字原创 2012-03-15 15:51:00 · 702 阅读 · 0 评论 -
CI框架源码阅读---------系统初始化文件
文件位置:Location: ./system/core/CodeIgniter.phpCodeIgniter.php 执行流程分析这是系统初始化文件1.定义CI版本2.定义CI分支 这里我认为CI有两个分支一个是Core ,另一个是Reactor。但是这里具体的作用我还没弄白。3.加载全局函数system/core/common.php4.加载框架常量 如果定义了EN原创 2013-02-22 14:59:30 · 3191 阅读 · 2 评论 -
CI框架源码阅读---------Config.php
文件地址:./system/core/Config.php主要作用:管理配置1.成员属性$config 所有已加载配置的值的列表2.成员属性$is_loaded 所有加载配置文件的列表3.成员属性$_config_paths 当需要加载配置文件的时候搜索路径的列表4.__construct() 构造方法程序会首先自动执行这个方法它所做的内容主要有两个 a)获取配置赋值给原创 2013-03-08 09:25:04 · 2277 阅读 · 0 评论 -
CI框架源码阅读---------Model.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-12 09:38:03 · 1920 阅读 · 0 评论 -
CI框架源码阅读---------Controller.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-12 09:37:03 · 1963 阅读 · 0 评论 -
CI框架源码阅读---------Input.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-12 09:35:33 · 1941 阅读 · 0 评论 -
CI框架源码阅读---------DB.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-12 09:41:25 · 4709 阅读 · 0 评论 -
CI框架源码阅读---------Lang.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-12 09:36:20 · 1689 阅读 · 0 评论 -
CI框架源码阅读---------Security.php
<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');/** * CodeIgniter * * An open source application development framework for PHP 5.1.6 or newer * * @package CodeIgniter原创 2013-03-12 09:32:58 · 2223 阅读 · 0 评论
分享