PHP
文章平均质量分 75
xuebingnan
这个作者很懒,什么都没留下…
展开
-
php session原理
众所周知,http协议是一个无状态协议,简单来说就是,web服务器是不知道现在连接上来的人到底是哪个人,为了满足选择性发送信息的需求,在http的基础上做了很多扩展来达到这个目的,如数字签名、cookie、session等。web服务器或者web程序如何能够知道现在连接上来的是谁?要解决这个问题,首先需要在服务器端和客户端建立一一对应关系,下边我通过抓取http的内容来说明这种对应关系是如何建立的...2010-03-25 10:41:13 · 49 阅读 · 0 评论 -
PHP与MySQL - Web查询数据库
PHP+MySQL的组合是构建网站的一个常见搭配,不过如何使用PHP通过Web访问MySQL数据库呢?下面从Web数据库架构的工作原理讲起。从Web查询数据库:Web数据库架构的工作原理一个用户的浏览器发出一个HTTP请求,请求特定的Web页面,在该页面中出发form表单提交到php脚本文件(如:results.php)中处理Web服务器接收到对results.php页面的请求后,检索文件...原创 2010-05-24 13:54:38 · 125 阅读 · 0 评论 -
PHP与AJAX返回json数据调用
当用ajax返回多个值的时候,可以用xml,也可以用jsonjson实例 <html><head><title>AjaxTest</title><script type="text/javascript">var xmlHttp;function createXMLHttpRequest(){ if(window.Activ...原创 2010-05-26 15:49:07 · 260 阅读 · 0 评论 -
ucenter单点登陆总结
一直在用康盛的产品,自然少不了单点登陆,最近重新研究了下ucenter的机制,其实它的基本原理就一句话:跨域设置用户信息下面只对用户登陆做比较详细说明,其他注册、PM等操作其实原理差不多1:用户登陆do_login.php[uchome]$passport = getpassport($username, $password);此处操作调用了uc_client下clie...原创 2010-06-02 10:15:02 · 230 阅读 · 0 评论 -
PHP多文件上传类
<?php/**//** @(#)UploadFile.php* * 可同时处理用户多个上传文件。效验文件有效性后存储至指定目录。* 可返回上传文件的相关有用信息供其它程序使用。(如文件名、类型、大小、保存路径)* 使用方法请见本类底部(UploadFile类使用注释)信息。**/class UploadFile {var $user_post_f...原创 2010-06-02 10:36:22 · 103 阅读 · 0 评论 -
实现多服务器共享 SESSION 数据
转载一、问题起源 大型网站通常有多个服务器,并且使用多个二级域名。这样一台服务器产生的session就不能为所有服务器所共享。这样用户在一个地方登录就不能全部通行(以下来自http://nio.infor96.com/sharing-php-session-data-between-servers ,我略作修改)二、PHP SESSION 的工作原理 在解决问题之前,先来了...原创 2010-06-08 10:49:43 · 144 阅读 · 0 评论 -
多Web服务器之间共享Session的解决方案
非常多研发中涉及到用户的Session验证非常保留的问题,这个问题比较有意思,总结了几种方案,只供参考。 [ 问题提出 ] 为了满足足够大的应用,满足更多的客户,于是我们架设了N台Web服务器(N>=2),在多台Web服务器的情况下,我们会涉及到一个问题:用户登陆一台服务器以后,如果在跨越到另一台服务器的时候能够继续使用客户的Session? (以下描述方案只是针对Lin...原创 2010-06-08 11:01:02 · 153 阅读 · 0 评论 -
利用memcached在多台服务器之间共享PHP的session数据
最近我的几篇文章都是是最近项目的一点心得^^这个项目一开始就设计的“很大”,考虑了很多负载均衡方面的东西,比如采用nginx将php的请求分摊到若干个运行php fastcgi的独立服务器中。这样的设计除了在每个php fastcgi服务器中要保存一份程序的拷贝以外,还有一个亟待解决的问题。由于php fastcgi进程分别运行在不同的服务器上,默认的,php的session数据是在各个服务器上分...原创 2010-06-08 11:11:19 · 133 阅读 · 0 评论 -
使用nginx配置多个php fastcgi负载均衡
配置还是非常简单的,充分体现了nginx的强大与配置的简单^^下面是大致的服务器结构图:应用的最前端是一台nginx服务器,所有静态的内容都由nginx来处理,而将所有php的请求都分摊到下游的若干台运行php fastcgi守护进程的服务器中,这样可以以一种廉价的方案来实现对系统负载的分摊,扩展系统的负载能力。三台php fastcgi服务器的ip地址分别为:172.16.236.110...原创 2010-06-08 11:20:03 · 96 阅读 · 0 评论 -
apache与php的session时间的修改
在apache1.2以上的版本中,可以在httpd.conf里面设置: KeepAlive on KeepAliveTimeout 15 这样就能限制每个session的保持时间是15秒。session的使用可以使得很多请求都可以通过同一个tcp连接来发送,节约了网络资源和系统资源 PHP中的session有效期默认是1440秒(24分钟)【注:php5里默认的是180分】,也就是说...原创 2010-06-08 14:29:41 · 440 阅读 · 0 评论 -
file_get_contents与curl效率及稳定性问题
做过好多抓取别家网站内容的产品,习惯了使用方便快捷的file_get_contents函数,但是总是会遇到获取失败的问题,尽管按照手册中的例子设置了超时,可多数时候不会奏效:$config['context'] = stream_context_create(array(‘http’ => array(‘method’ => “GET”, ’timeout’ => 5...原创 2010-09-03 15:46:10 · 249 阅读 · 0 评论 -
PHP文件缓存效率测试
PHP文件缓存内容保存格式主要有三种: 1.变量 var_export 格式化成PHP正常的赋值书写格式,用的时候直接include文件 2.变量 serialize 序列化之后保存,用的时候反序列化 3,变量 json_encode格式化之后保存,用的时候json_decode 一直以来,我都以为第一...原创 2010-09-03 16:05:07 · 153 阅读 · 0 评论 -
PHP文件缓存类
<?php/* */ $fzz = new fzz_cache;$fzz->kk = $_SERVER; //写入缓存//$fzz->set("kk",$_SERVER,10000); //此方法不与类属性想冲突,可以用任意缓存名;print_r($fzz->kk); //读取缓存//print_r($fzz->get("kk"));//unset($fzz-&...原创 2010-09-03 17:00:22 · 155 阅读 · 0 评论 -
php相关面试内容
笔试部分大概有mysql显示当前时间【now()】,时间格式化函数【date_format】 php打印前一天的时间【echo date(‘Y-m-d’,strtotime(“-1 day”));】 mysql优化 MVC认识 mysql:类别表、产品表、点击数,显示所有的类别名称和产品名称,显示点击数前十名的产品 访问量大的解决方法 版本控制系统 include...原创 2010-06-22 14:27:11 · 95 阅读 · 0 评论 -
PHP常用字符串正则替换及剖分函数比较
本文介绍PHP常用正则匹配函数间的区别,主要有str_replace、str_ireplace、substr_replace、preg_replace、preg_match、preg_match_all、preg_quote、preg_split、ereg_replace、eregi_replace、preg_replace、str_split,当然其中有几个不能使用正则表达式,但因为跟相关正则函...原创 2010-06-26 16:07:00 · 125 阅读 · 0 评论 -
把一篇英文文档中所有单词的首字母转为大写
6.在文本框中输入一个年份,判断其生肖,并输出在文本框旁边。对html和javaServlet都要求写出。7.Ajax从服务器取数据 {id:123, name:”baidu”, username:”mm”,checked:true};分析name对应的值(”baidu”).(题目较长,不记得了)$txt = "{id:123, name:\"baidu\", username:\"mm\",...原创 2010-06-26 17:16:16 · 483 阅读 · 0 评论 -
探讨高并发写入文件内容
读写相关的问题是永远存在的,文件锁就是为了解决这个问题而做的,其实它就是个简单的信号量。读写相关性指由于同时读写文件造成文件数据的随机性冲突。为了明确知道在何时通过何种操作对更改或是读取了文件中的那些数据,有必要对操作进行序列化,原子化,同步化,使用户能确知在何时文件中有什么数据。文件锁就是其中一个工具。 文件系统一般有两种锁,共享锁及排它锁,也可被称为读锁和写锁。 文件系统锁的特点: 一个文件打...原创 2010-07-02 08:49:05 · 682 阅读 · 0 评论 -
理解PHP中的MVC编程之控制器
简单来讲,控制器的作用就是接受请求。它使用获取的方法,在这里是通过URI,载入一个功能模块来刷新或者提交一个表述层。控制器将使用$_GET自动全局变量来判断载入哪一个模块。一个请求的例子,看起来像这样:http://example.com/index.php?module=login这看起来很简单,但是在实现的过程中却不是。这里是几个控制器能识别的argument部分:module定义了使用哪一个...原创 2010-05-24 13:49:32 · 222 阅读 · 0 评论 -
理解PHP中的MVC编程之MVC框架简介
【什么是MVC?】 MVC是一个可以让你把“三个部分(即MVC的全称,Model、View、Controller)”谐调地组成一个复杂应用程序的概念。一辆汽车就是一个在现实生活中非常好的MVC例子。我们看车都看两个View(显示)部分:内部和外部。而这两个都离不开一个Controller(控制者):司机。刹车系统、方向盘和其他操控系统代表了Model(模型):他们从司机(Controller...原创 2010-05-24 13:45:29 · 92 阅读 · 0 评论 -
Linux系统双机热备的方案
目前,双机和集群采用的操作系统主要有UNIX、Linux、BSD及微软公司的Windows NT/2000。随着Linux的迅速发展,稳定性、安全性及功能的不断增强,人们对Linux的使用越来越广泛,Linux已成为服务器市场中的一个重要操作系统,基于Linux的双机和集群系统也越来越多。Linux集群的主要优点有:高可靠性、高性能、低成本等等。1.1 概述1.1.1 实现目的...原创 2010-05-22 17:39:52 · 409 阅读 · 0 评论 -
PHP中$_SERVER的详细参数与说明
PHP编程中经常需要用到一些服务器的一些资料,特把$_SERVER的详细参数整理下,方便以后使用。$_SERVER['PHP_SELF'] #当前正在执行脚本的文件名,与 document root相关。$_SERVER['argv'] #传递给该脚本的参数。$_SERVER['argc'] #包含传递给程序的命令行参数的个数(如果运行在命令行模式)。$_SERVER['GATEW...2010-03-25 11:03:55 · 81 阅读 · 0 评论 -
PHP 面向对象的构造函数继承
1、子类如果没有构造函数,将自动调用父类的构造函数; 2、子类如果有构造函数(即重写了构造函数),将不在调用父类的构造函数;2010-03-25 15:46:23 · 92 阅读 · 0 评论 -
Ucenter通信原理
1,用户登录bbs,通过logging.php文件中,使用函数uc_user_login验证,如果验证成功,将调用函数uc_user_synlogin(位于uc_client下的client.php文件中),在这个函数中调用 uc_api_post('user', 'synlogin', array('uid'=>$uid));之后向UC_API.'/index.php'传递了数据...2010-03-30 10:04:41 · 81 阅读 · 0 评论 -
PHP删除文件夹三法
PHP删除文件夹三法 1、递归法Php代码 deleteDir($dir) { if (rmdir($dir)==false && is_dir($dir)) { if ($dp = opendir($dir)) { while (($file=readdir($dp)) != false) { ...2010-04-07 09:37:36 · 87 阅读 · 0 评论 -
测试PHP代码的运行效率
要测试一个PHP页面运行使用的时间:$HeaderTime=time();/* PHP 页面代码*/echo microtime(true)-$HeaderTime;要测试一个PHP页面所占用的内存:echo memory_get_usage() / 1024 / 1024 ...2010-04-10 14:15:34 · 230 阅读 · 0 评论 -
雅虎网站页面性能优化的34条黄金守则
雅虎团队经验:网站页面性能优化的34条黄金守则1、尽量减少HTTP请求次数 终端用户响应的时间中,有80%用于下载各项内容。这部分时间包括下载页面中的图像、样式表、脚本、Flash等。通过减少页面中的元素可以减少HTTP请求的次数。这是提高网页速度的关键步骤。 减少页面组件的方法其实就是简化页面设计。那么有没有一种方法既能保持页面内容的丰富性又能达到加快响应时间的目的呢?这里有...2010-04-24 17:02:04 · 122 阅读 · 0 评论 -
PHP:session和cookie原理之我见
1、客户端执行程序请求 服务器发回请求结果 并且生成一个cookie给客户端 所以 第二次刷新的时候 才会有cookie的出现2、session是保存在内存中 跟进程是同时存在的 会话cookie 但是此时服务器端还保存有session文件 需要设置时间来删除session文件3、Cookie是在本地Cookie文件中保存一些信息,Cookie文件中保存的是键值对(key-value)。Coo...2010-04-27 15:06:45 · 82 阅读 · 0 评论 -
字符串截取
//==========================================// 函数: cnSubStr($string,$sublen)// 功能: 字符串截取// 参数: $string 源字符串,$sublen截取的长度(双数)// 返回: 截取后的字符串//==========================================functi...2010-04-29 22:14:49 · 71 阅读 · 0 评论 -
Jquery跨域调用(检测用户功能)实例
JQuery1.2 后getJSON方法支持跨域读取json数据,原理是利用一个叫做jsonp的概念。 实例: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><htm...2010-05-06 10:34:45 · 85 阅读 · 0 评论 -
javascript跨域设置cookie(二级域名)
<script language="javascript" type="text/javascript">function setCookie(c_name,value,expiredays){ var exdate=new Date(); exdate.setDate(exdate.getDate()+expiredays); document.cookie=c_...2010-05-08 13:05:35 · 1808 阅读 · 0 评论 -
浅解用PHP实现MVC
传统的面相过程式的开发方式在处理中型以上的应用时,就开始显得力不从心。即便我们能够快速的完成需求,但是在需求发生变更后或者进行后期维护的时候,我们会深深地陷入我们早期搭建的陷阱中。所以,使用面向对象的方式来实现MVC模式,将为我们梳理程序的架构提供一个清晰的思路。什么是MVC?关于MVC的定义和解释,可以说多种多样。我们可以在Wiki或者[2]中找到更为详尽的解释,这里我并不打算,也没有能...原创 2010-05-09 13:13:55 · 82 阅读 · 0 评论 -
PHP无限分类的原理
以下是无限分类的分析原理,总结出来的是效率比较慢,功能实现了,如果有更好的方法 请评论下。 ·什么是无限分类呢?就像windows下新建一个文件夹,在新建的文件夹下又可以新建一个文件夹,这样无限循环下去,无限分类也是这样,父类可以分出它子类,子类又可以分出它的子类,这样一直无限循环下去。 ·那PHP又是如何实现它的无限分类的呢?如何把它的各个分类一一列出来呢?首先我们假设有这样的一个三...原创 2010-05-10 13:17:33 · 174 阅读 · 0 评论 -
php+mysql无限级分类(非递归)
php+mysql无限级分类(非递归) 要实现无限级分类,递归一般是第一个也是最容易想到的,但是递归一般被认为占用资源的方法,所以很多系统是不考虑使用递归的本文还是通过数据库的设计,用一句sql语句实现数据库字段大概如下:-----------------------------------------------------------------------------------id 编号f...原创 2010-05-10 13:45:17 · 102 阅读 · 0 评论 -
判断常量、变量、函数是否设置
<?php /* 判断常量是否存在*/ if (defined('MYCONSTANT')) { echo MYCONSTANT; } //判断变量是否存在 if (isset($myvar)) { echo "存在变量$myvar."; } //判断函数是否存在 if (function_exists('imap_open')) { echo "...原创 2010-05-13 15:41:02 · 226 阅读 · 0 评论 -
时间戳与格林威治时间互相转换
/** * fun.TimeApi.php * * GMT 系列 - 功能库接口 1 * * 功能库名: 时间处理功能库接口 * * 功能库内容介绍: * 1. 格林威治时间快速转时间戳 * 2. 时间戳转格林威治时间 * 3. 计算时间间隔 * 4. 判断是否闰年 * 5. 闰年间隔...原创 2010-05-15 13:29:19 · 2061 阅读 · 0 评论 -
如何解决Javascript调用用户信息(ajax)产生的延时问题
很多时候,我们在静态页面处理会员信息时,第一时间想到的就是利用ajax调用一个php文件来读取相关的资料,然后依据登陆情况判断显示的内容,笔者以前也是如此,并用了jquery框架,但是灾难的问题来了,如果显示的地方在代码的中间部分,根据html代码是有上到下的读取方式,往往所有的html代码执行完了,整个页面都显示出来,但是会员信息还没完全显示出来,出现了部分延时的情况,这种情况改怎么办呢? ...2010-05-18 09:54:10 · 185 阅读 · 0 评论 -
PHP cookie和session的分析(转)
1. PHP的COOKIEcookie 是一种在远程浏览器端储存数据并以此来跟踪和识别用户的机制。PHP在http协议的头信息里发送cookie, 因此 setcookie() 函数必须在其它信息被输出到浏览器前调用,这和对 header() 函数的限制类似。1.1 设置cookie: 可以用 setcookie() 或 setrawcookie() 函数来设置 cookie。也可以通过向客...原创 2010-11-19 10:42:14 · 189 阅读 · 0 评论