浅谈PHP缓存技术之二

浅谈PHP缓存技术之二
采用 PEAR 来缓冲 php 程序 PHP 世界中缓冲是一个热门的话题,因为 PHP 产生的动态页面,每次用户请求都需要重新计算,不论请求的结果是否一样,同时,PHP 每次都会编译一次脚本。这样的超负荷运转对一个流量很高的网站来说肯定难以忍受。幸运的是, Web 的结果可以缓冲,而不需要重新运行和编译脚本,商品化的产品像 ZendCache 或者开源的 Alternate PHP Cache都提供了把 PHP 脚本编译为字节代码并缓冲的...

浅谈PHP缓存技术之一

浅谈PHP缓存技术之一
近来做了一阵子程序性能的优化工作,有个比较有意思的想法,想提出来和大家交流一下。 Cache是“以空间换时间”策略的典型应用模式,是提高系统性能的一种重要方法。缓存的使用在大访问量的情况下能够极大的减少对数据库操作的次 数,明显降低系统负荷提高系统性能。相比页面的缓存,结果集是一种“原始数据”不包含格式信息,数据量相对较小,而且可以再进行格式化,所以显得相当灵 活。由于php是“一边编译一...

PHP常用MySql操作

PHP常用MySql操作
php中常用的几个 MySQL 语句 显示数据库或表: show databases;//然后可以use database_name; show tables; 更改表名: alter table table_name rename new_t; 添加列 : alter table table_name add column c_n column attributes; 删除列: alter table table_name drop column c_n; 创建索引: alter table c_table add index (c_n1,c_n2); alter table c_table add unique index_name(c_n); alter table c_t...

在PHP中如何使用模板

在PHP中如何使用模板
是否你面临着创建由一个编程人员(可能就是你)和一个设计人员同时进行创作的网站?你不知道如何使工作对你俩来说变得容易吗?我来给你答案:使用FastTemplate来使你的站点更容易定制! 好了,你可能想知道为什么你要使用FastTemplates。 ·可以在几秒钟改变你的整个站点的外观 ·抽象程序设计,没有垃圾HTML代码 ·设计人员不需要关心全部的"模糊"代码 ·令人惊讶地快 ·更容易重用旧的模版(对普通的表单而说...

正确解读PHP获取时间错误原因

正确解读PHP获取时间错误原因
当我们在运用PHP语言进行实际编程时通常都会遇到一些小麻烦而苦苦的去寻找解决的办法。我们在这里就为大家分享PHP获取时间错误的解决方法。 今天用echo date("Y-m-d H:i:s")获取系统时间时,发现获取的时间与系统的时间不符。 PHP是外国人开发的,所以经常有很多东西不太好用。研究了一番发现,PHP默认设置的时间是以格林威治时区为标准的,表现是和北京时间差8个小时,因此我们需要将其+8个小时,原理是我...

Smarty快速入门之二

Smarty快速入门之二

为了以后更方便的使用smarty,我们可以将“加载Smarty 模版引擎”、“建立 Smarty 对象”、“设定Smarty 对象的参数”这三步放到一个公共的php文件内,以后在需要使用的地方我们直接reuqire一下,即可,例如:

Smarty快速入门之一

Smarty快速入门之一
Smarty是一个使用PHP写出来的模板引擎,是目前业界最著名的PHP模板引擎之一。它分离了逻辑代码和外在的内容,提供了一种易于管理和使用的方法,用来将原本与HTML代码混杂在一起PHP代码逻辑分离。简单的讲,目的就是要使PHP程序员同前端人员分离,使程序员改变程序的逻辑内容不会影响到前端人员的页面设计,前端人员重新修改页面不会影响到程序的程序逻辑,这在多人合作的项目中显的尤为重要。 Smarty的优点...

PHP数组基础学习知识

PHP数组基础学习知识
对于网页编程来说,最重要的就是存取和读写数据了。存储方式可能有很多种,可以是字符串、数组、文件的形式等,今天学习了数组,可以说是PHP的数据应用中较重要的一种方式。PHP的数组函数众多,下面是我学习的小结,借此记之,便于以后鉴之…… 一、数组定义: 数组的定义使用 array()方式定义,可以定义空数组: [code lang="php"] $number = array(1,3,5,7,9); //定义空数组 $result = array(); $color ...

DIRECTORY_SEPARATOR的作用

DIRECTORY_SEPARATOR的作用
DIRECTORY_SEPARATOR是php的内部常量,用于显示系统分隔符的命令,不需要任何定义与包含即可直接使用。 在windows下路径分隔符是(当然/在部分系统上也是可以正常运行的),在linux上路径的分隔符是/,这就导致了一个问题,比如开发机器是windows,有一个图片上传程序,调试机器上指定的上传文件保存目录是: define(ROOT, dirname(__FILE__)."/upload"); 在本地调试都很正常,但是上传到linux服务器的时候...

PHP跳转页面的三种方式

PHP跳转页面的三种方式
PHP页面跳转一、header()函数 header()函数是PHP中进行页面跳转的一种十分简单的方法。header()函数的主要功能是将HTTP协议标头(header)输出到浏览器。 header()函数的定义如下: void header (string string [,bool replace [,int http_response_code]]) 可选参数replace指明是替换前一条类似标头还是添加一条相同类型的标头,默认为替换。 第二个可选参数http_response_code强制将HTTP相应代码设为指定值...

CakePHP: HTTPS HTTP页面跳转导致登录信息丢失

CakePHP: HTTPS HTTP页面跳转导致登录信息丢失
可能的情况之一是由于Session有问题, 导致服务器返回的set-cookie错误或丢失。 从而导致用户登录信息无法保持。 解决方法之一是在用户登录成功后,获取提交表单中用户名和密码,手工设置到浏览器Cookie中。 注意密码的获取方式为$this->data[User][password],如果用$this->Auth->user[password]某些情况下会取不到值。 如果不是在SSL/NONE SSL之间切换或在多个应用服务器之间切换,一般不会出现...

CakePHP: 性能方面的考虑

CakePHP: 性能方面的考虑
1、$uses和loadModel的使用 在CakePHP1.3.x版本中尽量不使用$uses, 因为这会全部加载使用到的model,占用内存和消耗不必要的时间。 相反在需要使用model的地方,使用loadModel加载它。在不需要关联数据的情况下,设置其recursive属性为-1。 另外控制器默认的数据模型不用加载,如果users_controller不用调用loadModel(User),User模型及其关联模型会自动加载, 在控制器中只要直接使用即可: $this->Use...

PHP文件打开、关闭、写入的判断与执行

PHP文件打开、关闭、写入的判断与执行

今天学习PHP的文件操作命令,涉及了fopen、fwrite、fclose、is_writable,但在使用中,很多时候可能遇到文件不存在、没有权限写入、打开失败、写入失败等各种问题,如何准确的控制和判断成了PHP中的一个“小问题”,下面是从书上摘抄下来的语句。

为什么说PHP是个集中营

为什么说PHP是个集中营
有一天我跟在DUMBO的一个非常棒的创业公司的老板聊天,谈到为什么非PHP界的开发人员普遍轻视PHP和PHP相关社区。他提出了一个观点让我印象很深,很大程度上是因为以前从来没有听到过这样的说法。 如果你不知道大多数的程序员都会对PHP发什么样的牢骚,那么,这些牢骚差不多会像这样: 语法丑陋 缺乏其它语言都有的一些必要的特征(在5.3版本之前,没有命名空间,闭包) 不一致的函数命名、使用惯例,以及其它...

PHP autoload机制分析

PHP autoload机制分析
PHP实现autoload有两种方法: 1、拦截器__autoload() 2、设置全局变量函数指针autoload_func为指定函数。通常在c扩展中使用 本质上前者还是通过后者实现的。 分析过程,PHP5.3.6源码 =>Zend/zend_vm_def.h 1894行 ZEND_VM_HANDLER(109,ZEND_FETCH_CLASS,... =>zend_execute_API.c 1526行 zend_class_entry *zend_fetch_class(const char *class_name,... =>zend_execute_API.c 1564行 if(zend_loo...

PHP程序员突破成长瓶颈 – 附学习建议

PHP程序员突破成长瓶颈 – 附学习建议
身边有几个做PHP开发的朋友,因为面试,也接触到不少的PHP工程师,他们常疑虑自己将来在技术上的成长与发展,我常给他们一些建议,希望他们能破突自己,有更好的发展。 PHP工程师面临成长瓶颈 先明确我所指的PHP工程题,是指毕业工作后,主要以PHP进行WEB系统的开发,没有使用其他语言工作过。工作经验大概在3~4年,普通的WEB系统(百万级访问,千成级数据以内或业务逻辑不是特别复杂)开发起基本得心应手...

编译安装PHP出现configure: error: mysql configure failed. Plea

编译安装PHP出现configure: error: mysql configure failed. Plea
好久没有编译安装过php了,为了玩nginx.没法子,编译一次来测试.我加的编译的参数是: # ./configure –prefix=/usr/local/php –with-config-file-path=/etc –with-gd –enable-gd-native-ttf –with-mysql –with-iconv-dir –with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib –with-libxml-dir –enable-xml –disable-debug –disable-rpath –enable-discard-path –enable-safe-mode –enable-bcmath –en...

PHP与SQL注入攻击

PHP与SQL注入攻击
SQL注入攻击是黑客攻击网站最常用的手段。如果你的站点没有使用严格的用户输入检验,那么常容易遭到SQL注入攻击。SQL注入攻击通常通过给站点数据库提交不良的数据或查询语句来实现,很可能使数据库中的纪录遭到暴露,更改或被删除。下面来谈谈SQL注入攻击是如何实现的,又如何防范。 看这个例子: // supposed input $name = “ilia’; DELETE FROM users;”; mysql_query(“SELECT * FROM users WHERE name=’{...

成为优秀PHP开发人员做到的5件事

成为优秀PHP开发人员做到的5件事
Php是当今互联网开发语言中的中流砥柱,大约有2000万个域名(网站)使用的语言的都是php语言。因其巨大的优势和极度的弹性,php语言已经成为一门非常流行的语言。作为一个phper,如果你想更加优秀,请浏览下面的内容并记住。  第一:使用php核心函数和类 在准备创建函数之前去查一下php手册吧,也许你想要的函数别人已经构建好了。这些函数和类不仅可以简化开发效率和流程,更重要的是他们往往有更高的执行...