php编程
文章平均质量分 80
crazzy_lp
这个作者很懒,什么都没留下…
展开
-
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 · 199 阅读 · 0 评论 -
认识缓存之redis【2】特点结构
一、redis持久化 redis是基于内存的数据库,内存数据库有个严重的弊端;突然宕机或者断电时,内存的数据不会保存。为了解决这个问题,redis提供了两种持久化方式:内存快照(Snapshotting)和日志追加(Append-only file)。1、内存快照 内存快照方式是将内存中的数据以快照方式写入二进制文件中,默认文件名为dump.rdb。 redi...原创 2014-08-14 11:34:12 · 106 阅读 · 0 评论 -
认识缓存之redis【1】安装使用
redis本质上是一个key-value类型的内存数据库,它的功能比memcached强大的多。其中value可以是String、list、Set、Sorted Set、Hash等类型的数据结构。目前,已经有很多大型网站中大量使用。 在本次博客中,仅仅介绍redis作为缓存服务器的使用。有关redis数据库(事物处理、主从同步)特性和Redis与VM的后台操作不做详细介绍,如...原创 2014-08-14 11:33:34 · 91 阅读 · 0 评论 -
认识缓存之memcached【3】分布式部署
就像memcached章节【1】中“典型应用”结构图中表示的那样,很多时候1台memcached服务器根本不能满足我们的要求,需要布置多台memcached服务器。这个时候就需要我们解决如何将数据保存到多台memcached服务器上。有两种解决方案:第一种是普通Hash分布;第二种是一致性Hash分布。一、普通Hash分布1、普通hash分布,hash算法如下:functi...原创 2014-08-13 11:04:42 · 121 阅读 · 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 · 158 阅读 · 0 评论 -
认识缓存之Memcached【1】特点结构
一、认识memcached1、为什么使用memcached 随着互联网的发展,传统关系型数据库开始出现瓶颈,很多方面不能满足我们的要求:例如:①对数据库的高并发读写;②对海量数据的处理;2、memcached的特点 memcached是高性能的分布式内存缓存服务器,通过缓存数据库查询结果,减少数据库访问次数,以提高web应用的速度和扩展性。memcached有如下优...原创 2014-08-12 13:44:42 · 132 阅读 · 0 评论 -
认识缓存之客户端缓存
缓存的最后一层,是直接面对客户端的客户端缓存。通常也把这部分称为web缓存。web缓存位于客户端。缓存会根据进来的请求保存输出内容的复本,例如html页面、图片文件等,然后,当下一个请求来到时,如果是相同的URL,缓存直接使用复本相应请求访问,而不是向源服务器再次发送请求。 web缓存的具体实现是由浏览器来实现的。浏览器在计算机上开辟一块磁盘空间用于存储已经看过的网站的副本。...原创 2014-08-11 14:48:54 · 391 阅读 · 0 评论 -
认识缓存之服务器缓存(varnish)
在没有任何优化的情况下,每个HTTP请求,web服务器都必须从服务器磁盘中读取请求页面的数据,然后发送给客户端。相对于内存访问速度来说,磁盘访问的速度极其缓慢。把要访问的页面缓存到内存中,下次访问直接从内存中读取,能有效加快web应用的访问速度。一、传统代理和反向代理 一般情况下,使用浏览器直接连接其他web站点取得网络信息,直接联系到目的站点服务器,目的站点服务器把信息...原创 2014-08-08 15:24:10 · 357 阅读 · 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 · 360 阅读 · 0 评论 -
认识缓存之服务器缓存(Apache)
当前web服务器功能异常强大,除了能够提供高性能的HTTP服务,还可以提供反向代理、页面缓存的功能。比较流行的web服务器如:Apache、Nginx。这些服务器都已经提供了成熟的插件,实现缓存功能。只需要我们在安装这些web服务器的时候,将所需的插件编译进去,并通过配置文件配置说明,就可以使用。一、Apache缓存1、依赖组件 Apache服务器从2.0开始就已经可...原创 2014-08-07 11:31:46 · 393 阅读 · 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 · 298 阅读 · 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 · 576 阅读 · 0 评论 -
php工具类之【图像操作类库】
class Image { /** +---------------------------------------------------------- * 取得图像信息 * +---------------------------------------------------------- * @static...原创 2014-08-14 17:57:44 · 157 阅读 · 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 · 168 阅读 · 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 · 91 阅读 · 0 评论 -
php工具类之【视频转换类】
在这里简要介绍一下搭建视频网站所需要的软件,这些软件包括ffmpeg、mplayer。它们主要用来负责视频的转码工作,ffmpeg基本上对所有格式的视频文件都可以处理,但是对rmvb和rm格式的视频无法转码,这个时候,就需要通过MPlayer转码工具的协助,完成转码任务。 如果要在网页上播放,就需要转码。如果采用flash播放器播放视频,这个时候就需要转码出flv格式的视...原创 2014-08-17 13:56:23 · 230 阅读 · 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 · 216 阅读 · 0 评论 -
php工具类之【String处理类】
class String { /** +---------------------------------------------------------- * 生成UUID 单机使用 +---------------------------------------------------------- * @access public...原创 2014-08-15 11:01:21 · 202 阅读 · 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 · 206 阅读 · 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 · 150 阅读 · 0 评论 -
php工具类之【文件上传类】
class Upload{ // 上传文件的最大值 public $maxSize = -1; // 允许上传的文件后缀 // 留空不作后缀检查 public $allowExts = array(); // 使用对上传图片进行缩略图处理 public $thumb = false; // 缩略图最大宽度...原创 2014-08-15 10:56:51 · 115 阅读 · 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 · 161 阅读 · 0 评论 -
认识缓存之文件缓存
一、文件缓存产生原因 文件缓存是把缓存数据存储到文件系统即硬盘文件中。与内存相比,硬盘属于比较慢的存储设备。那为什么还需要用到文件存储呢?原因如下:磁盘容量大,可以存放足够多的数据。现在的常规磁盘已经进入TB级别,但内存还处于GB级别。磁盘价格远远低于内存价格,通常只有同样大小内存价格的百分之一到十分之一;磁盘与内存相比更稳定更可靠,断电后数据不丢失,存储也比较简单可靠;...原创 2014-08-06 16:40:46 · 519 阅读 · 0 评论 -
认识缓存之Opcode缓存
一、php加速器介绍 一个php程序在运行完成后,内存马上释放,基本上所有数据都在此时销毁(仅有极少数据会缓存),也就是说此时计算机内存中基本上不存在这个php代码中的数据,这和常驻内存的java等语言有显著区别。这种缓存机制具有如下的优缺点: 优点:有效避免内存泄露,内存回收机制更简单,避免因为一个程序的问题而连累整个服务器。 缺点:无法复用已有数据,每个p...原创 2014-08-05 16:50:40 · 228 阅读 · 0 评论 -
php生命周期
这里介绍的php生命周期,就是php在请求调用过程中,经过了那些操作,都是完成了什么工作。要想了解这个过程,一切就需要从ASPI开始。 SAPI(Server Application Propramming interface)指的是PHP具体应用的编程接口,他提供了一个接口,使得PHP可以和其他应用进行交互数据。PHP脚本要执行可以有很多方式,例如web服务器请求加载(...原创 2014-07-23 13:32:13 · 92 阅读 · 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 · 153 阅读 · 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 · 217 阅读 · 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 · 181 阅读 · 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 · 835 阅读 · 0 评论 -
php-fpm优化说明
php-fpm存在两种方式,一种是直接开启指定数量的php-fpm进程,不再增加或者减少;另一种则是开始的时候开启一定数量的php-fpm进程,当请求量变大的时候,动态的增加php-fpm进程数到上限,当空闲的时候自动释放空闲的进程数到一个下限。 这两种不同的执行方式,可以根据服务器的实际需求来进行调整。 这里先说一下涉及到这个的几个参数吧,他们分别是pm、pm...原创 2014-07-21 10:10:34 · 102 阅读 · 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 · 86 阅读 · 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 · 80 阅读 · 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 · 94 阅读 · 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 · 196 阅读 · 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 · 95 阅读 · 0 评论 -
php垃圾回收之引用计数
一、引用计数基本知识 每个php变量存在一个叫“zval”的变量容器中,一个zval变量容器,除了包含变量的类型和值,还包括两个字节的额外信息。第一个是“is_ref",是个bool值,用来标识这个变量是否属于引用集合。通过这个字节,php引擎才能把普通变量和引用变量区分开来,由于php允许用户通过使用&来使用自定义引用,zval变量容器中还有一个内部引用计数机制来优化内存使...原创 2014-07-25 13:44:37 · 103 阅读 · 0 评论 -
认识缓存之mysql查询缓存
mysql的query cache用来缓存和query有关的数据。具体来说Query cache有其特殊的业务场景,它不像其他的数据库产品,缓存查询语句的执行计划等信息;而query cache则是缓存客户端提交给mysql的select语句以及语句的结果集,就是将select语句和语句的结果做hash映射关系后保存在一定的内存区域内。一、工作原理 查询缓存的工作原理,...原创 2014-08-05 15:43:20 · 127 阅读 · 0 评论 -
认识缓存之理论篇
随着网络的发展,数据越来越多,从而导致运算压力越来越大,为了解决这个问题,就需要合理的分级计算机资源,充分利用已有资源。缓存的工作实际上就是资源的合理分配。 一个网站或者应用的一般形式是:浏览器发应用请求,应用服务器做一堆计算和逻辑判断后再向数据存储层发出请求,数据存储层收到请求后再通过计算把数据返回给应用服务器,应应用服务器再次计算后把数据返回给浏览器。这是标准流程。...原创 2014-08-05 14:23:53 · 121 阅读 · 0 评论 -
如何才能做到网站高并发访问【转】
在这里我转发一篇文章【如何才能做到网站高并发访问】,去了解怎样架构才可以撑得起一个高并发访问的站点。并通过这篇文章的介绍,我们逐步深入学习文章中涉及到的技术。 作者:老男孩linux运维 文章地址:http://oldboy.blog.51cto.com/2561410/615721/ 高并发访问的核心原则其实就一句话“把所有的用户访问请求都尽量往前推”。...原创 2014-08-04 16:12:22 · 117 阅读 · 0 评论 -
php几个常见问题
一、php浮点数的一个常见问题 首先我们先看一个例子:<?php $f = 0.58; var_dump(intval($f * 100)); //为啥输出57?> 为什么输出的是57?这是php的bug吗?有很多人经常会问这样的问题,为了搞懂这个问题,那必须要知道浮点数的表示。 浮点数以64位的长度(双精度)为例:会...原创 2014-08-04 15:32:15 · 92 阅读 · 0 评论