php编程
文章平均质量分 80
crazzy_lp
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
php工具类之【图像操作类库】
class Image { /** +---------------------------------------------------------- * 取得图像信息 * +---------------------------------------------------------- * @static...原创 2014-08-14 17:57:44 · 225 阅读 · 0 评论 -
认识缓存之服务器缓存(Apache)
当前web服务器功能异常强大,除了能够提供高性能的HTTP服务,还可以提供反向代理、页面缓存的功能。比较流行的web服务器如:Apache、Nginx。这些服务器都已经提供了成熟的插件,实现缓存功能。只需要我们在安装这些web服务器的时候,将所需的插件编译进去,并通过配置文件配置说明,就可以使用。一、Apache缓存1、依赖组件 Apache服务器从2.0开始就已经可...原创 2014-08-07 11:31:46 · 549 阅读 · 0 评论 -
认识缓存之服务器缓存(Nginx)
不管是前面介绍的Apache缓存还是现在要介绍的Nginx缓存,其实他们都借鉴了squid。随着web服务器的发展,web服务器的缓存功能已经越来越强大,通过配置使用web服务器的缓存功能,我们在很多时候已经没有必要去实用squid了。下面是Nginx的proxy_cache模块的介绍。二、Nginx缓存1、依赖组件 从Nginx-0.7.44版本开始,Nginx开始...原创 2014-08-08 10:52:33 · 477 阅读 · 0 评论 -
认识缓存之服务器缓存(varnish)
在没有任何优化的情况下,每个HTTP请求,web服务器都必须从服务器磁盘中读取请求页面的数据,然后发送给客户端。相对于内存访问速度来说,磁盘访问的速度极其缓慢。把要访问的页面缓存到内存中,下次访问直接从内存中读取,能有效加快web应用的访问速度。一、传统代理和反向代理 一般情况下,使用浏览器直接连接其他web站点取得网络信息,直接联系到目的站点服务器,目的站点服务器把信息...原创 2014-08-08 15:24:10 · 469 阅读 · 0 评论 -
认识缓存之客户端缓存
缓存的最后一层,是直接面对客户端的客户端缓存。通常也把这部分称为web缓存。web缓存位于客户端。缓存会根据进来的请求保存输出内容的复本,例如html页面、图片文件等,然后,当下一个请求来到时,如果是相同的URL,缓存直接使用复本相应请求访问,而不是向源服务器再次发送请求。 web缓存的具体实现是由浏览器来实现的。浏览器在计算机上开辟一块磁盘空间用于存储已经看过的网站的副本。...原创 2014-08-11 14:48:54 · 481 阅读 · 0 评论 -
认识缓存之Memcached【1】特点结构
一、认识memcached1、为什么使用memcached 随着互联网的发展,传统关系型数据库开始出现瓶颈,很多方面不能满足我们的要求:例如:①对数据库的高并发读写;②对海量数据的处理;2、memcached的特点 memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高web应用的速度和扩展性。memcached有如下优...原创 2014-08-12 13:44:42 · 171 阅读 · 0 评论 -
认识缓存之Memcached【2】安装使用
一、安装Memcached服务器1、在安装Memcached之前,必须先安装依赖库libevent,安装方法如下:wget https://github.com/downloads/libevent/libevent/libevent-2.0.15-stable.tar.gztar -zxvf libevent-2.0.15-stable.tar.gzcd libevent-2...原创 2014-08-12 14:39:29 · 222 阅读 · 0 评论 -
认识缓存之memcached【3】分布式部署
就像memcached章节【1】中“典型应用”结构图中表示的那样,很多时候1台memcached服务器根本不能满足我们的要求,需要布置多台memcached服务器。这个时候就需要我们解决如何将数据保存到多台memcached服务器上。有两种解决方案:第一种是普通Hash分布;第二种是一致性Hash分布。一、普通Hash分布1、普通hash分布,hash算法如下:functi...原创 2014-08-13 11:04:42 · 170 阅读 · 0 评论 -
认识缓存之redis【1】安装使用
redis本质上是一个key-value类型的内存数据库,它的功能比memcached强大的多。其中value可以是String、list、Set、Sorted Set、Hash等类型的数据结构。目前,已经有很多大型网站中大量使用。 在本次博客中,仅仅介绍redis作为缓存服务器的使用。有关redis数据库(事物处理、主从同步)特性和Redis与VM的后台操作不做详细介绍,如...原创 2014-08-14 11:33:34 · 141 阅读 · 0 评论 -
认识缓存之redis【2】特点结构
一、redis持久化 redis是基于内存的数据库,内存数据库有个严重的弊端;突然宕机或者断电时,内存的数据不会保存。为了解决这个问题,redis提供了两种持久化方式:内存快照(Snapshotting)和日志追加(Append-only file)。1、内存快照 内存快照方式是将内存中的数据以快照方式写入二进制文件中,默认文件名为dump.rdb。 redi...原创 2014-08-14 11:34:12 · 154 阅读 · 0 评论 -
php工具类之【日期节假日换算类】
/** * 日期节假日换算类 * @version 1.0 2012-12-20 */class Lunar { var $MIN_YEAR = 1891; var $MAX_YEAR = 2100; var $lunarInfo = array( array(0,2,9,21936),array(6,1,30,9...原创 2014-08-14 17:54:25 · 360 阅读 · 0 评论 -
php工具类之【ip转换为对应地区地址类】
** * ip转换为对应地区地址类 * @version 1.0 2012-12-20 */class ip2Area{ protected $errors = array(); protected $service = 'api.ipinfodb.com'; protected $version = '***'; protected $...原创 2014-08-14 17:55:25 · 668 阅读 · 0 评论 -
认识缓存之文件缓存
一、文件缓存产生原因 文件缓存是把缓存数据存储到文件系统即硬盘文件中。与内存相比,硬盘属于比较慢的存储设备。那为什么还需要用到文件存储呢?原因如下:磁盘容量大,可以存放足够多的数据。现在的常规磁盘已经进入TB级别,但内存还处于GB级别。磁盘价格远远低于内存价格,通常只有同样大小内存价格的百分之一到十分之一;磁盘与内存相比更稳定更可靠,断电后数据不丢失,存储也比较简单可靠;...原创 2014-08-06 16:40:46 · 770 阅读 · 0 评论 -
php工具类之【邮件发送类】
class email { var $mail; var $recipient; var $title; var $content; var $sender; var $delimiter; var $header; var $charset; function __construct(&$mail) { $this->email($...原创 2014-08-15 10:55:17 · 228 阅读 · 0 评论 -
php工具类之【文件上传类】
class Upload{ // 上传文件的最大值 public $maxSize = -1; // 允许上传的文件后缀 // 留空不作后缀检查 public $allowExts = array(); // 使用对上传图片进行缩略图处理 public $thumb = false; // 缩略图最大宽度...原创 2014-08-15 10:56:51 · 169 阅读 · 0 评论 -
php工具类之【tree类】
class Tree { var $data = array(); var $child = array(-1 => array()); var $layer = array(-1 => -1); var $parent = array(); var $countid = 0; function Tree($value='') {} function s...原创 2014-08-15 10:57:59 · 224 阅读 · 0 评论 -
php工具类之【mysql数据库操作类】
class mysqlDb { var $version = ''; var $link = null; var $querynum = 0; var $debug = array(); function connect($dbhost, $dbuser, $dbpw, $dbname = '', $pconnect = 0, $dbcharset = '') {...原创 2014-08-15 10:59:20 · 273 阅读 · 0 评论 -
php工具类之【String处理类】
class String { /** +---------------------------------------------------------- * 生成UUID 单机使用 +---------------------------------------------------------- * @access public...原创 2014-08-15 11:01:21 · 277 阅读 · 0 评论 -
php工具类之【zip压缩文件处理类】
class PHPZip{ private $ctrl_dir = array(); private $datasec = array(); private $old_offset = 0; private $eof_ctrl_dir = "\x50\x4b\x05\x06\x00\x00\x00\x00"; /** ...原创 2014-08-17 13:49:44 · 282 阅读 · 0 评论 -
php工具类之【视频转换类】
在这里简要介绍一下搭建视频网站所需要的软件,这些软件包括ffmpeg、mplayer。它们主要用来负责视频的转码工作,ffmpeg基本上对所有格式的视频文件都可以处理,但是对rmvb和rm格式的视频无法转码,这个时候,就需要通过MPlayer转码工具的协助,完成转码任务。 如果要在网页上播放,就需要转码。如果采用flash播放器播放视频,这个时候就需要转码出flv格式的视...原创 2014-08-17 13:56:23 · 332 阅读 · 0 评论 -
php工具类之【mongo数据库操作类】
class mongoInit { private $mongo; //mongo对象 private $db; //db mongodb对象数据库 private $collection; //集合,相当于数据表 /** * 初始化Mongo * $config = array( * 'server' => ‘127.0.0.1' 服务器地址...原创 2014-08-17 13:58:17 · 132 阅读 · 0 评论 -
php工具类之【浏览器模拟类】
/** * 浏览器模拟工具类 * @version 1.0 20140724 */class cURL { var $headers; var $user_agent; var $compression; var $cookie_file; var $proxy; var $httpStatus; function __construct...原创 2014-08-17 14:00:40 · 245 阅读 · 0 评论 -
php工具类之【自定义日志记录类】
<?phpif(!defined("DIR_ROOT")){ define("DIR_ROOT", dirname(dirname(__FILE__)));}define('LEVEL_FATAL', 0);define('LEVEL_ERROR', 1);define('LEVEL_WARN', 2);define('LEVEL_INFO', 3);de...原创 2014-08-17 14:02:19 · 268 阅读 · 0 评论 -
php垃圾回收之引用计数
一、引用计数基本知识 每个php变量存在一个叫“zval”的变量容器中,一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是“is_ref",是个bool值,用来标识这个变量是否属于引用集合。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制来优化内存使...原创 2014-07-25 13:44:37 · 170 阅读 · 0 评论 -
linux安装php
一、安装GD,这是php对图片库的支持库。①安装freetype(这是一个字体引擎)。下载:http://download.chinaunix.net/download/0004000/3295.shtml解压:tar -zxvf freetype-version.tar.gz.进入:cd freetype-version.预编译:./configure --prefix...原创 2014-07-20 14:51:57 · 140 阅读 · 0 评论 -
Linux安装nginx
1、环境准备。查看是否已经安装gcc和gcc-c 。 which gcc;如果没有安装运行:yum -y install gcc which g ;如果没有安装运行:yum -y install gcc-c 2、安装pcre。下载地址:http://download.chinaunix.net/download/0008000/7913.shtml(这个主要用来处理http-rewrite。如果...原创 2014-07-21 09:55:35 · 125 阅读 · 0 评论 -
nginx配置文件详解
#运行用户user www-data; #启动进程,通常设置成和cpu的数量相等worker_processes 1;#全局错误日志及PID文件error_log /var/log/nginx/error.log;pid /var/run/nginx.pid;#工作模式及连接数上限events {use epoll; #epoll是多路复用IO(I/O Multiplexing)中的一...原创 2014-07-21 10:02:46 · 128 阅读 · 0 评论 -
php-fpm优化说明
php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是开始的时候开启一定数量的php-fpm进程,当请求量变大的时候,动态的增加php-fpm进程数到上限,当空闲的时候自动释放空闲的进程数到一个下限。 这两种不同的执行方式,可以根据服务器的实际需求来进行调整。 这里先说一下涉及到这个的几个参数吧,他们分别是pm、pm...原创 2014-07-21 10:10:34 · 162 阅读 · 0 评论 -
通过面试题目学习php之填空题
1、 判断一个变量是否存在的函数:isset判断一个变量是否为null的函数:is_null判断一个变量是否为空的函数:empty销毁一个变量的函数:unset2、$a =array(1,2);unset($a[0]);print_r($a);echo count($a);请写出输出结果:答:array(1=>2) ; 13、$str = '...原创 2014-07-22 10:23:08 · 942 阅读 · 0 评论 -
通过面试题目学习php之简答题
1、 请简述echo、print和print_r的区别?答:echo和print实际上都不是函数,而是一个语法结构。不同的是echo返回值是void,并且可以输出多个参数值;而print返回值是int(总是返回1),且只能输出一个字符串值。Print_r是一个输出函数,返回值为boolean型,如果给出的是 string、integer或 float,将打印变量值本身...原创 2014-07-22 10:27:51 · 270 阅读 · 0 评论 -
通过面试题目学习php之问答题
1、http状态码,及其说明。答:php通过设置header信息返回http状态码,例如返回404:header(“HTTP/1.1 404 Not Find”); HTTP状态码是用以表示网页服务器HTTP响应状态的3位数字代码。所有状态码的第一个数字代表了响应的五种状态之一。1xx 消息,这一类型的状态码,代表请求已被接受,需要继续处理。这类响应是临时响应...原创 2014-07-22 10:33:08 · 285 阅读 · 0 评论 -
通过面试题目学习php之编程题
1、编写一个自定义函数提取这段路径的的后缀名。例如:http://www.baidu.com/hello/test.php.html?a=3&b=4需要取出php或.phpfunction geturltype($url){ $info=parse_url($url); return end(explode('.',$info['path']));}...原创 2014-07-22 10:39:00 · 213 阅读 · 0 评论 -
php生命周期
这里介绍的php生命周期,就是php在请求调用过程中,经过了那些操作,都是完成了什么工作。要想了解这个过程,一切就需要从ASPI开始。 SAPI(Server Application Propramming interface)指的是PHP具体应用的编程接口,他提供了一个接口,使得PHP可以和其他应用进行交互数据。PHP脚本要执行可以有很多方式,例如web服务器请求加载(...原创 2014-07-23 13:32:13 · 142 阅读 · 0 评论 -
常见的php运行方式
SAPI:Server Application Programming Interface服务端应用编程端口。他就是php与其他应用交互的接口,php脚本要执行有很多中方式,通过web服务器,或者直接在命令行行下,也可以嵌入其他程序中。SAPI提供了一个和外部通信的接口,常见的SAPI有:cgi、fast-cgi、cli、Apache模块的dll等。1、CGI CGI即通...原创 2014-07-24 15:16:37 · 256 阅读 · 0 评论 -
深入理解php变量
我们知道php是一个弱类型,动态的脚本语言。所谓弱类型,就是说php并不严格验证变量类型,在声明一个变量的时候,并不需要指明它保存的数据的类型。例如:$var = 1; //int$var = "laruence"; //string$var = 1.0002; //float$var = array(); // array$var = new Exception...原创 2014-07-24 15:56:25 · 161 阅读 · 0 评论 -
Linux安装mysql数据库
1、环境查看与准备:①查看centos在安装的时候,是否已经mysql服务。由于centos默认安装的mysql有时候版本太低,而且也不符合我们生产环境的要求,一般我们都自己安装。查看mysql是否已经安装:rpm -qa |grep mysql;如果发现有(mysql-server-version),则说明centos已经安装mysql了,这时需要我们删除掉默认安装的版本,指令:rpm ...原创 2014-07-20 14:15:48 · 133 阅读 · 0 评论 -
php垃圾回收之回收策略和算法
一、垃圾回收实现方式 在以前的php中用到的是引用计数机制处理垃圾回收问题,但是这个机制存在一个弊端,就是无法处理循环引用引起的内存泄露。然而在php5.3.0以后的版本中(包含5.3.0)使用了专门GC机制(同步算法)清理垃圾,来处理这个内存泄露问题。下面就是介绍它是如何实现的: 首先要了解几个基本的准则:1:如果一个zval的refcount增加,那么此zval还...原创 2014-07-25 16:06:11 · 230 阅读 · 0 评论 -
为什么要了解php内部结构HashTable
一、认识HASHTable1、hashtable的定义 哈希表是将键名key按指定的散列函数HASH经过HASH(key)计算后映射到表中一个记录,而这个数组就是哈希表。其中这里的HASH指任意的函数,例如:MD5、CRC32、SHA1或自定义的函数。2、hashtable的性能 hashtable是一种查找性能极高的数据结构,在很多语言内部都实现了HashTa...原创 2014-08-03 15:19:27 · 157 阅读 · 0 评论 -
php中HashTable的实现
PHP内核中的哈希表是十分重要的数据结构,PHP的大部分的语言特性都是基于哈希表实现的, 例如:变量的作用域、函数表、类的属性、方法等,Zend引擎内部的很多数据都是保存在哈希表中的(在前面的章节中也介绍了hashTable的应用)。 Zend HashTable的实现结合了双向链表和向量(数组)两种数据结构的优点,为PHP提供了非常高效的数据存储和查询机制。一、Ha...原创 2014-08-03 15:57:26 · 274 阅读 · 0 评论 -
php读取word中的数据
1、安装antiword 下载地址:http://www.winfield.demon.nl/ 解压:tar -zxvf filename 安装:make && make install 安装过程中,自动安装到了/root目录下,只有root才能执行该命令,我们需要修改一下路径。copy到/usr中。 cp /root/bin/*antiword /usr/local/bin/ m...原创 2014-08-03 16:28:57 · 577 阅读 · 0 评论
分享