PHP开发和架构
文章平均质量分 69
小迷童
这个作者很懒,什么都没留下…
展开
-
高性能web开发
1. 数据库访问性能优化 数据库的连接和关闭访问数据库资源需要创建连接、打开连接和关闭连接几个操作。这些过程需要多次与数据库交换信息以通过身份验证,比较耗费服务器资源。ASP.NET中提供了连接池(Connection Pool)改善打开和关闭数据库对性能的影响。系统将用户的数据库连接放在连接池中,需要时取出,关闭时收回连接,等待下一次的连接请求。连接池的大小是有限的,如果在连接转载 2012-01-16 09:48:35 · 302 阅读 · 0 评论 -
高性能WEB开发之图片篇
在该网站在不影响原图片的质量下去掉图片中一些元数据,那么这怎么去实现呢?本文就主要告诉你如何高性能WEB开发之图片篇一、缩小图片大小当图片很多的时候,减少图片大小是提高下载速度最直接的方法。1. 使用PNG8代替GIF(非动画图片),因为PNG8在效果一样的情况,图片大小比GIF要小。2. 用fireworks处理PNG图片,在我们产品中很多PNG图片是美工直接转载 2012-01-16 09:53:35 · 330 阅读 · 0 评论 -
高性能WEB开发之如何减少请求数
每次请求都会带上一些额外的信息进行传输(这次请求中还没有带cookie),当请求的资源很小,比如1个不到1k的图标,可能request带的数据比实际图标的数据量还大。所以当请求越多的时候,在网络上传输的数据自然就多,传输速度自然就慢了。所以要要减少请求数,那如何减少请求数呢?我们先分析下请求头,看看每次请求都带了那些额外的数据.下面是监控的google的请求头Host www.转载 2012-01-16 10:54:44 · 407 阅读 · 0 评论 -
高性能WEB开发之HTTP服务器
第一篇:HTTP服务器因tomcat处理静态资源的速度比较慢,所以首先想到的就是把所有静态资源(JS,CSS,image,swf)提到单独的服务器,用更加快速的HTTP服务器,这里选择了nginx了,nginx相比apache,更加轻量级,配置更加简单,而且nginx不仅仅是高性能的HTTP服务器,还是高性能的反向代理服务器。目前很多大型网站都使用了nginx,新浪转载 2012-01-16 09:51:27 · 278 阅读 · 0 评论 -
高性能WEB开发之如何加载JavaScript
外部JS的阻塞下载所有浏览器在下载JS的时候,会阻止一切其他活动,比如其他资源的下载,内容的呈现等等。至到JS下载、解析、执行完毕后才开始继续并行下载其他资源并呈现内容。有人会问:为什么JS不能像CSS、image一样并行下载了?这里需要简单介绍一下浏览器构造页面的原理,当浏览器从服务器接收到了HTML文档,并把HTML在内存中转换成DOM树,在转换的过程中如果发现某个节点转载 2012-01-16 09:50:41 · 333 阅读 · 0 评论 -
高性能WEB开发之Web性能测试工具推荐
WEB性能测试工具主要分为三种,一种是测试页面资源加载速度的,一种是测试页面加载完毕后页面呈现、JS操作速度的,还有一种是总体上对页面进行评价分析,下面分别对这些工具进行介绍,如果谁有更好的工具也请一起分享下。Firebug:Firebug 是firefox中最为经典的开发工具,可以监控请求头,响应头,显示资源加载瀑布图:HttpWatch :htt转载 2012-01-16 09:53:02 · 373 阅读 · 0 评论 -
php配置文件php.ini 中文版
;;;;;;;;;;;;;;;; 简介 ;;;;;;;;;;;;;;;;; 本文并非是对英文版 php.ini 的简单翻译,而是参考了众多资料以后,结合自己的理解,增加了许多内容,; 包括在原有 php.ini 基础上增加了一些实用模块的配置说明,同时对文件内容的安排进行了调整。; 由于作者不喜欢 no-free 的玩意儿,所以删除了除 MySQL 和 PostgreSQL 以转载 2012-01-16 13:52:18 · 422 阅读 · 0 评论 -
关于路径的问题
在web里面,作为新手,路径是一个很头疼的事.今天我又忘了路径是怎么回事,并且把它给记下来1、相对路径 ./adduser ----相对于当前目录 .././adduser -- 相对于父父级目录 .addUser -----相对于当前目录2、 绝对路径 /adduser 相对于context root (这个是经常会错的,跟“./”混淆)转载 2012-01-16 13:56:56 · 281 阅读 · 0 评论 -
PHP常见缓存技术分析
在大部份情况下我们的网站都会使用数据库作为站点数据存储的容器。当你执行一个SQL查询时,典型的处理过程是:连接数据库->准备SQL查询->发送查询到数据库->取得数据库返回结果->关闭数据库连接。但数据库中有些数据是完全静态的或不太经常变动的,缓存系统会通过把SQL查询的结果缓存到一个更快的存储系统中存储,从而避免频繁操作数据库而很大程度上提高了程序执行时间,而且缓存查询结果也允许你后期处理。转载 2012-01-17 13:56:32 · 307 阅读 · 0 评论 -
php缓存技术总结
全页面静态化缓存也就是将页面全部生成html静态页面,用户访问时直接访问的静态页面,而不会去走php服务器解析的流程。此种方式,在CMS系统中比较常见,比如dedecms;一种比较常用的实现方式是用输出缓存:Ob_start()******要运行的代码*******$content = Ob_get_contents();****将缓存内容写入html文件*转载 2012-01-17 14:23:55 · 393 阅读 · 0 评论 -
一个php购物车的例子
网上搜到的,简单容易理解。cookie存购物车ID,db存购物车数据。//购物车session的产生代码if(! $session && ! $scid) {/*session用来区别每一个购物车,相当于每个车的身份证号;scid只用来标识一个购物车id号,可以看做是每个车的名字;当该购物车的id和session值两者都不存在时,就产生一个新购物车*/$session = md5转载 2012-01-17 17:33:14 · 1749 阅读 · 0 评论 -
php自动跳转中英文页面
PHP代码:<?$lan = substr(?$HTTP_ACCEPT_LANGUAGE,0,5);if ($lan == "zh-cn")print("");elseprint("");?>HTML网页根据来访这的浏览器语言不同自动跳转多语言页面在 之间加入如下代码。var type=navigator.appNameif (type=="Netscape")var转载 2012-01-17 17:33:50 · 472 阅读 · 0 评论 -
PHP 实现多服务器共享 SESSION 数据
一、问题起源 稍大一些的网站,通常都会有好几个服务器,每个服务器运行着不同功能的模块,使用不同的二级域名,而一个整体性强的网站,用户系统是统一的,即一套用户名、密码在整个网站的各个模块中都是可以登录使用的。各个服务器共享用户数据是比较容易实现的,只需要在后端放个数据库服务器,各个服务器通过统一接口对用户数据进行访问即可。但还存在一个问题,就是用户在这个服务器登录之后,进入另一个服务器的别的模块转载 2012-01-17 17:36:11 · 415 阅读 · 0 评论 -
PHP header 缓存设置
1. Accept:告诉WEB服务器自己接受什么介质类型,*/* 表示任何类型,type/* 表示该类型下的所有子类型,type/sub-type。2. Accept-Charset: 浏览器申明自己接收的字符集Accept-Encoding: 浏览器申明自己接收的编码方法,通常指定压缩方法,是否支持压缩,支持什么压缩方法(gzip,deflate)Accept-Langua转载 2012-01-17 17:25:14 · 541 阅读 · 0 评论 -
php中将数组缓存化记录
<?php class Function_Class { function Function_Class() { } /** * 数组缓存字符串生成 * * @param string $arrayName 要要缓存的数组名转载 2012-01-17 17:27:11 · 487 阅读 · 0 评论 -
PHP控制网页过期时间的程序
有时我们需要控制主页之类的网页过期时间。但我们比如使用的是Chinacache的CDN,那要怎么样设计才能让他缓存我的内容. 当然,前提要先打开CDN中一个功能reload_into_ims on.这样用户发送过来no-cache也不怕了.因为这样会给给no-cache转成If-Modified-Since .所以我们写程序主要是对If-Modified-Since控制就好了.记的,缓存系转载 2012-01-17 17:43:06 · 365 阅读 · 0 评论 -
提高PHP编程效率的53个要点
用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的速度是$row转载 2012-01-18 10:25:26 · 363 阅读 · 0 评论 -
PHP获取客户端、PHP获取服务器相关信息
服务器变量 $_SERVER 详解:1、$_SESSION['PHP_SELF'] -- 获取当前正在执行脚本的文件名2、$_SERVER['SERVER_PROTOCOL'] -- 请求页面时通信协议的名称和版本。例如,“HTTP/1.0”。3、$_SERVER['REQUEST_TIME'] -- 请求开始时的时间戳。从 PHP 5.1.0 起有效。和time函数效果一样。4、转载 2012-02-04 12:37:08 · 275 阅读 · 0 评论 -
处理PHP字符串的10个简单方法
PHP处理字符串的能力非常强大,方法也是多种多样,但有的时候你需要选择一种最简单且理想的解决方法。文章列举了10个PHP中常见的字符串处理案例,并提供了相对应的最理想的处理方法。 1.确定一个字符串的长度 这是文章中最明显的一个例子,其中的问题是我们如何来确定一个字符串的长度,这里我们不能不提的就是strlen()函数: $text = "sunny day"; $count =转载 2012-02-04 12:58:06 · 307 阅读 · 0 评论 -
php中使用exec,system等函数调用系统命令
php的内置函数exec,system都可以调用系统命令(shell命令),当然还有passthru,escapeshellcmd等函数。 在很多时候利用php的exec,system等函数调用系统命令可以帮助我们更好更快的完成工作。比如前二天笔者在批量处理.rar文件时exec就帮我了大忙了。 今天整理一下常用的调用系统函数发出来和大家分享经验。 注意:要想使用这二个函数php转载 2012-02-04 12:08:20 · 308 阅读 · 0 评论 -
PHP.ini 性能优化
代码: ctrl+y查找:disable_functions 找到后在=后面添加 (这里都是禁止在php里面执行的函数)代码: 复制内容到剪贴板 exec,system,passthru,error_log,ini_alter,dl,openlog,syslog,readlink, symlink,link,leak,fsockopen,proc_open,po转载 2012-02-04 12:56:20 · 437 阅读 · 0 评论 -
PHP开发高负载网站技术
在CERNET做过拨号接入平台的搭建,而后在Yahoo&3721从事过搜索引擎前端开发,又在MOP处理过大型社区猫扑大杂烩的架构 升级等工作,同时自己接触和开发过不少大中型网站的模块,因此在大型网站应对高负载和并发的解决方案上有一些积累和经验,可以和大家一起探讨一下。一个小型的网站,比如个人网站,可以使用最简单的html静态页面就实现了,配合一些图片达到美化效果,所有的页面均存放在一个目录下,转载 2012-02-04 13:07:27 · 466 阅读 · 0 评论 -
构架高性能WEB网站的几点知识
前言:对于构架高性能的web网站大家都很感兴趣,本文从几点粗谈高性能web网站需要考虑的问题。 HTML静态化什么是html静态化?说得简单点,就是把所有不是.htm或者.html的页面改为.htm或者.html1.纯静态页面当用户访问是,不需要经过服务器解析,直接就可以传送到客户端,此类型的页面,由于不需要解析就能直接访问,一般情况下,比动态页面的执行速度快。转载 2012-02-04 09:42:37 · 337 阅读 · 0 评论 -
40个迹象表明你还是PHP菜鸟
你是PHP菜鸟,如果你: 1. 不会利用如phpDoc这样的工具来恰当地注释你的代码 2. 对优秀的集成开发环境如Zend Studio或Eclipse PDT视而不见 3. 从未用过任何形式的版本控制系统,如Subclipse 4. 不采用某种编码与命名标准,以及通用约定,不能在项目开发周期里贯彻落实 5. 不使用统一开发方式 6. 不转载 2012-02-04 12:34:17 · 255 阅读 · 0 评论 -
PHP100精华:PHP打印函数集合
1 echo();2 print();3 die();4 printf();5 sprintf();6 print_r();7 var_dump();1 echo() 可以同时输出多个字符串,可以多个参数,并不需要圆括号,无返回值。2 print() 只可以同时输出一个字符串,一个参数,需要圆括号,有返回值,当其执行失败时返flase .print 的用法和C语言转载 2012-02-04 12:36:23 · 279 阅读 · 0 评论 -
PHP中的串行化变量和序列化对象
串行化大概就是把一些变量转化成为字符串的字节流的形式,这样比较容易传输、存储。当然,关是传输存储没有什么,关键是变成串的形式以后还能够转化回来,而且能够保持原来数据的结构。 在PHP中有多串行化处理的函数:serialize(),该函数把任何变量值(除了资源变量)转化为字符串的形式,可以把字符串保存到文件里,或者注册为Session,乃至于使用curl来模拟GET/POST来传输变量,达转载 2012-02-04 12:45:31 · 241 阅读 · 0 评论 -
PHP 性能优化技巧
Google 在 Google Code 制作了 “Let’s make the web faster” (让我们使得 Web 更快)的网站中,分享了一些如网页性能优化的技巧和教程以及工具,今天我就翻译一篇技巧文章:PHP 性能优化技巧,他说的5条技巧我都不知道。1. 不要随便就复制变量有时候为了使 PHP 代码更加整洁,一些 PHP 新手(包括我)会把预定义好的变量复制到一个名字更简短的变量转载 2012-02-04 13:03:32 · 248 阅读 · 0 评论 -
php的curl实现get和post
类似于dreamhost这类主机服务商,是显示fopen的使用的。使用PHP的curl可以实现支持FTP、FTPS、HTTP HTPPS SCP SFTP TFTP TELNET DICT FILE和LDAP。curl 支持SSL证书、HTTP POST、HTTP PUT 、FTP 上传,kerberos、基于HTT格式的上传、代理、cookie、用户+口令证明、文件传送恢复、http代理通道就最转载 2012-01-17 17:43:41 · 333 阅读 · 0 评论 -
页面跳转方法总结大全
最近刚刚完成手中的项目,比较闲。来这儿转转,把积累的一些技巧分享给大家!1、关于PHP重定向方法一:header("Location: index.php");方法二:echo "window.location =/"$PHP_SELF/";";方法三:echo "";转载 2012-02-04 12:42:52 · 247 阅读 · 0 评论 -
如何正确运用PHP ini_set函数
在PHP配置函数中,有一种函数的功能是实现设置php.ini中的某些变量值的。它就是我们今天要为大家介绍的PHP ini_set函数。 PHP ini_set函数是设置选项中的值,在执行函数后生效,脚本结束的时候,这个设置也失效。不是所有的选项都能被改函数设置的。具体那些值能够设置,可以查看手册中的列表。 就是能够设置php.ini中的选项值比如,display_error选项关闭了,转载 2012-02-04 12:58:48 · 319 阅读 · 0 评论 -
基于XML的Web分布式数据交换技术
一、WDDX的产生 WDDX,英文全称为Web Distributed DataExchange,是一种基于XML的Web分布式数据交换技术。WDDX最早是美国Allaire公司的程序技术设计师SimeonSimeonov为了解决ColdFusion中涉及到的分布计算问题而建立的。随着工作的开展,WDDX逐渐演变成为一种可用于不同的应用环境中交换复杂的结构化数据的数据交换技术。应用WDD转载 2012-03-15 22:44:49 · 550 阅读 · 0 评论 -
PHP JSON格式数据交互实例详解
此前我写了不少在PHP网站开发中应用XML进行数据交互的实例,这两天通过PHP解析JSON并进行交互的实例学习和了解了JSON在PHP中的应用,感觉非常方便,在PHP中解析JSON主要用到json_encode和json_decode两个PHP JSON函数,比PHP解析XML方便很多,下面详细介绍下PHP JSON的使用。 JSON基础介绍 JSON(JavaScript O转载 2012-03-15 22:49:12 · 526 阅读 · 0 评论 -
PHP操作XML详解
XML是一种流行的半结构化文件格式,以一种类似数据库的格式存储数据。在实际应用中,一些简单的、安全性较低的数据往往使用 XML文件的格式进行存储。这样做的好处一方面可以通过减少与数据库的交互性操作提高读取效率,另一方面可以有效利用 XML的优越性降低程序的编写难度。 PHP提供了一整套的读取 XML文件的方法,很容易的就可以编写基于 XML的脚本程序。本章将要介绍 PHP与 X转载 2012-03-15 23:01:03 · 497 阅读 · 0 评论 -
PHP代码中用冒号替代花括号
最近在读一个系统的代码,不断的遇到类似下面的这样格式的写法。A is equal to 5虽然也能大体知道这样的代码是干嘛的,但是始终觉得不是很痛快,仔细读了下相关的手册,了然了。 这样的代码用了PHP中的流程控制替代语法:PHP 提供了一些流程控制的替代语法,包括 if,while,for,foreach 和switch。 替代语法的基本形式是把左花括转载 2012-03-22 01:42:24 · 2797 阅读 · 0 评论 -
构建高性能的web站点学习笔记一
谈到网站优化,我们必须知道一次交互的过程中都经过哪几个阶段,然后在对应的阶段采取优化措施一次交互大概经历以下几部分时间:1.数据在网络中传输的时间(响应时间:发送数据的传输时间+返回数据的传输时间)2.站点服务器接收到请求并生成回应数据的时间3.浏览器计算并在本地渲染的时间 根据上述三个时间段,我在这简单的列举一下常用的优化方案1.增加带宽: 当网页或组件下载转载 2012-05-04 10:08:45 · 301 阅读 · 0 评论 -
构建高性能的web站点学习笔记五------Web服务器缓存
前面提到的一些缓存技术都是有我们的动态才程序控制的,现在的web服务器功能越来越强大,常用的web服务器软件也都内置了缓存功能,下面我们就简单的说下服务器端缓存的应用. 首先,我们先来介绍一下URL映射,对于所有web服务器我们向其发送Http请求,他解析后将结果返回给我们客户端,这听起来很简单么?真的是这样么,真相是web服务器还有很多“暗操作”,大家都知道Url重写技术吧,比如apa转载 2012-05-04 10:10:50 · 319 阅读 · 0 评论 -
PHP常用魔术方法总结
常用的魔术方法有:__Tostring () __Call() __autoLoad() __ clone() __GET() __SET() __isset() __unset() 1.__Tostring() 用于定义输出对象引用时调用 常用于打印一些对象的信息必须有返回值eg:有一个persion类Persion per =new persion()E转载 2012-05-04 10:13:20 · 309 阅读 · 0 评论 -
构建高性能的web站点学习笔记二------数据库扩展
构建高性能的web站点需要考虑很多方面,我们在这了解一下其中一项---------数据库扩展,希望能够让没有接触过这方面知识的朋友对数据库扩展有个认识吧。随着用户数量的不断增加,数据库将面临着巨大的增删改查,即便我们将sql语句优化的很好,但是数据库服务器仍然抵挡不了千军万马似的select,我们不得不考虑其他方法来解决这个问题。和web站点服务器一样,既然一台服务器不能承受不了,人多力量大,转载 2012-05-04 10:09:24 · 409 阅读 · 0 评论 -
构建高性能的web站点学习笔记三------动态内容缓存
缓存分为:整页缓存,局部缓存,数据缓存,还有代码解释器缓存,web服务器缓存缓存和缓冲的区别:二者相似之处都是解决速度不一致,而且都需要一块存储区域,缓冲主要为了减缓压力,比如内存的读写速度远远大于磁盘的读写速度,所以我们设置了磁盘缓冲区,常见的又在线看视频的时候视频缓冲区,但是缓存注重的是策略,需要考虑的是缓存命中率,每次都能找到我们想要的数据那是最理想的结果缓存的本质:就是将那些需要昂转载 2012-05-04 10:10:00 · 326 阅读 · 0 评论 -
构建高性能的web站点学习笔记四------浏览器缓存
1.为什么使用浏览器缓存 以前了解的动态脚本加速,或者动态内容缓存之类,他们的原理都是避免服务器重复计算,结果仍保留在服务器端,这样获取数据还得从服务器检索然后传送到用户浏览器,如果我们把这些结果放在浏览器中,就省去了服务器的查找和网络传输,浏览器缓存很好的实现了这个功能2.浏览器缓存存放在哪浏览器一般会在用户主机中创建一个目录,用来保存缓存文件,有的浏览器会将部分缓存放在内存中转载 2012-05-04 10:10:26 · 352 阅读 · 0 评论