
PHP编程
文章平均质量分 77
guoguo1980
这个作者很懒,什么都没留下…
展开
-
PHP 中检查库或函数是否可用的方法
随着版本的升高,PHP的功能也越来越完善,可用的扩展库和函数也越来越多,因此,我们写程序时也要考虑版本的兼容问题,同时还要考虑服务器(特别是虚拟主机)是否安装了扩展库。 本文介绍的函数其实是PHP手册上本来就有的,但是由于这些函数独立性较强,查找不易,所以单独介绍一下,方便查阅。1. 获取所有可用的模块 - get_loaded_extensions该函数返回所有已经加载的(可用的原创 2007-10-22 16:21:00 · 964 阅读 · 0 评论 -
Linux+Apache+Mysql+PHP典型配置
Linux+Apache+Mysql+PHP典型配置版权声明:可以任意转载,转载时请务必以超链接形式标明文章原始出处和作者信息及本声明http://www.5ilinux.com/lamp01.html关键字:apache+mysql+php apache mysql php 配置 lamp 服务器 web Linux+Apache+Mysql+PHP典型配置 调试环境:Red原创 2008-04-12 02:28:00 · 1414 阅读 · 0 评论 -
php获取客户端IP地址的几种方法
$iipp=$_SERVER["REMOTE_ADDR"];echo $iipp;-------------------------------------------------- $user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];$user_I原创 2008-01-21 16:01:00 · 2608 阅读 · 0 评论 -
五种常见的PHP设计模式
工厂模式 最初在设计模式 一书中,许多设计模式都鼓励使用松散耦合。要理解这个概念,让我们最好谈一下许多开发人员从事大型系统的艰苦历程。在更改一个代码片段时,就会发生问题,系统其他部分 —— 您曾认为完全不相关的部分中也有可能出现级联破坏。该问题在于紧密耦合 。系统某个部分中的函数和类严重依赖于系统的其他部分中函数和类的行为和结构。您需要一组模式,使这些类能够相互通信,但不希望将它们紧密绑定转载 2008-07-07 17:25:00 · 765 阅读 · 0 评论 -
Windows XP下 oracle instant client 配置指南
1、下载oracle instant client。注意不要下载只支持英文的 instantclient-basiclite-win32,这个版本不支持其他语言。 下载地址:http://www.oracle.com/technology/software/tech/oci/instantclient/index.html,选择适合自己的Windows版本。2、将下载文件解压原创 2008-07-14 11:06:00 · 5123 阅读 · 3 评论 -
字符编码简介:ASCII,Unicode,UTF-8,GB2312
1. ASCII码我们知道,在计算机内部,所有的信息最终都表示为一个二进制的字符串。每一个二进制位(bit)有0和1两种状态,因此八个二进制位就可以组合出256种状态,这被称为一个字节(byte)。也就是说,一个字节一共可以用来表示256种不同的状态,每一个状态对应一个符号,就是256个符号,从0000000到11111111。上个世纪60年代,美国制定了一套字符编码,对英语字符与二转载 2008-07-14 16:45:00 · 1742 阅读 · 0 评论 -
HTTP协议的头信息详解
HTTP协议的头信息详解 HTTP(HyperTextTransferProtocol)是超文本传输协议的缩写,它用于传送WWW方式的数据,关于HTTP 协议的详细内容请参 考RFC2616。HTTP协议采用了请求/响应模型。客户端向服务器发送一个请求,请求头包含请求的方法、URI、协议版本、以及包含请求修饰符、客户 信息和内容的类似于MIME的消息结构。服务器以一个状态行作为响应,相应转载 2008-07-14 16:42:00 · 29021 阅读 · 1 评论 -
实现多服务器session共享之NFS共享
利用NFS来共享session,如果session量比较大并且所有的session文件都在同一个子目录下的话,那么可能会由此带来很严重的负载问题,甚至导致网站无法使用。本文就是对这个方案做一下详细的解说。首先,修改 php.ini的 session.save_path 选项,大致如下:session.save_path = “2;/tmp/php_sess”意为把session存放在 “/t原创 2008-07-16 12:02:00 · 2171 阅读 · 0 评论 -
eaccelerator 应用之“使用共享内存存储Session”
eaccelerator的功能除了对php预编译代码进行优化、缓存之外,还提供了php开发下的共享内存操作、session内存存储、内容缓存等功能。php默认的session存储方式是在磁盘,虽然可以配置php生成的文件目录到内存盘中,但最终还是需要依赖于文件系统,势必产生文件操纵的开销。当网站并发请求很高的时候,还会产生另为一个性能问题:session目录下的文件数目过多,达到操纵系统瓶颈,原创 2008-07-16 12:07:00 · 1726 阅读 · 0 评论 -
PHP使用SOAP做webservice
PHP SOAP扩展原文地址:http://wso2.org/library/1060译者:Jimmy,转载请注明出处http://jimmys.cn简介PHP的SOAP扩展可以用来提供和使用Web services。换句话说,PHP开发者可以利用这个PHP扩展来写他们自己的Web services,也可以写一些客户端来使用给定的Web services。PHP5中的这个SOA转载 2008-05-12 12:59:00 · 10866 阅读 · 0 评论 -
PHP实现给图片自动打水印
/* * 功能:PHP图片水印 (水印支持图片或文字) * 参数: * $groundImage 背景图片,即需要加水印的图片,暂只支持GIF,JPG,PNG格式; * $waterPos 水印位置,有10种状态,0为随机位置; * 1为顶端居左,2为顶端居中,3为顶端居右; *原创 2008-04-09 18:24:00 · 3102 阅读 · 2 评论 -
字符串哈希函数算法的PHP 实现
恩...或许还有朋友不清楚字符串的哈希函数到底有什么用,这个用处呢,就是将字符串转换成数字,同时让所得数字尽量平均的分布在容器中,换句话说就是让字符串得到相同数字这种情况尽可能少的出现。当然咯...容器太小,内容太多那么再好的算法也没法避免出现冲突 = =b从网上找到的哈希函数基本上都是C算法的...最后只好从C and Java 算法中整理 and 测试了这些 PHP中的实现方法。有几个经典原创 2008-01-04 14:08:00 · 5771 阅读 · 1 评论 -
php时区设置老差8个小时解决办法
发现一个问题 date("Y-m-d G:i T",time()) 取出来的时间和本地时间老差8个小时,可我的系统明明是中国标准时(GMT+8),最后终于找到了问题所在:原来从php5.1.0开始,php.ini里加入了date.timezone这个选项,默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正原创 2008-03-18 01:38:00 · 9347 阅读 · 0 评论 -
正则表达式中的特殊字符一览
字符 意义:对于字符,通常表示按字面意义,指出接着的字符为特殊字符,不作解释。 例如:/b/匹配字符b,通过在b 前面加一个反斜杠,也就是/b/,则该字符变成特殊字符,表示 匹配一个单词的分界线。 或者: 对于几个字符,通常说明是特殊的,指出紧接着的字符不是特殊的,而应该按字面解释。 例如:*是一个特殊字符,匹配任意个字符(包括0个字符);例如:/a*/意味匹配0个或多个a。 为了匹配字面上的原创 2008-01-24 09:43:00 · 770 阅读 · 0 评论 -
MySQL与事务
MySQL5.X都已经发布好久了,但是还有很多人认为MySQL是不支持事务处理的,这不得不怪他们是孤陋寡闻的,其实,只要你的MySQL版本支持BDB或InnoDB表类型,那么你的MySQL就具有事务处理的能力。这里面,又以InnoDB表类型用的最多,虽然后来发生了诸如Oracle收购InnoDB等令MySQL不爽的事情,但那些商业上的斗争与技术无关,下面以InnoDB表类型为例简单说一下MySQL原创 2008-01-24 12:39:00 · 660 阅读 · 0 评论 -
优化使用mysql存储session
这两天仔细考虑下,大致给出一个方案,但还没有具体详细的测试。 1、session处理和统计结合起来。同时游客也都有记录。 2、完全使用数据库和cookie来模拟session的功能。 3、用户的对session的操作都尽量保证在一条sql语句完成。不用到session的时候,绝对不多一条查询。 4、为了效率起见,session的回收没有集成进来,推荐另外写程序调用。暂时给出代码,不具体解释原创 2008-01-24 09:40:00 · 1033 阅读 · 0 评论 -
用php来获得用户的真实ip地址-绕过代理服务器
<!--google_ad_client = "pub-5963083799350359";//336x280, ????Ӛ 07-12-7google_ad_slot = "8963629670";google_ad_width = 336;google_ad_height = 280;//-->现在很多朋友上网都用代理,特别是教育网的用户要上外原创 2008-01-21 16:08:00 · 6954 阅读 · 0 评论 -
php.ini 核心配置选项说明
PHP 手册 后退 附录 G. php.ini 配置选项 前进 php.ini 核心配置选项说明 原文出自:http://www.potu.com/man/php_转载 2008-01-31 14:38:00 · 954 阅读 · 0 评论 -
应用NuSoap构建新型的基于PHP的Web服务
许多机构已经采用了Apach和PHP作为他们的Web应用环境。在Web services模式中采用PHP可能看上去可能会比较难。但是事实上,搭配NuSoap,你可以轻松的应用PHP构建SOAP的客户端和服务器端。一个例子便能说明一切,让我们先看一个例子为了说明如何应用NuSoap和PHP来构建Web services,我们将举一个简单的例子。这个例子应用程序由一个PHP Web services的转载 2008-02-05 02:01:00 · 663 阅读 · 0 评论 -
使php支持mbstring库
mbstring库 全称是Multi-Byte String 即各种语言都有自己的编码,他们的字节数是不一样的,目前php内部的编码只支持ISO-8859-*, EUC-JP, UTF-8其他的编码的语言是没办法在php程序上正确显示的。解决的方法就是通过php的mbstring函数库来解决其安装是在编译php的时候加上--enable-mbstring=?"="后面就是跟需要支持的语转载 2008-02-12 08:26:00 · 11373 阅读 · 0 评论 -
strlen函数与多字节编码的字符串字节长度
Just to remember that strlen() return the number of characters of a string. Often the strlen() function is used to compute the length in bytes of a string. This is correct until string is single byte转载 2008-02-18 20:27:00 · 2112 阅读 · 0 评论 -
命令行方式运行PHP脚本
参考手册:http://www.php.net/manual/zh/features.commandline.php可执行文件 所有的PHP发行版,不论是编译自源代码的版本还是预创建的版本,都在默认情况下带有一个PHP可执行文件。这个可执行文件可以被用来运行命令行的PHP程序。 要在你的系统上找到这个可执行文件,就要遵照下面的步骤:原创 2008-03-13 19:05:00 · 37861 阅读 · 0 评论 -
php使用DOM处理xml文档
访问树中节点树中节点的访问不限制在往下一级,你可以访问当前节点的兄弟节点,父节点,甚至任何一个可能被访问到的节点。访问子节点子节点是当前节点的直接后代。简而言之,所有直接处于当前节点的下一级别的节点都是当前节点的子节点。例如,一个元素节点可能有包含(并不局限于此)注释节点,文本节点和一些其它的元素节点。属性节点只有一个子节点,这个子节点是一个包含属性节点的值的文本节点。文档节点可以原创 2008-05-12 13:01:00 · 4361 阅读 · 1 评论 -
PHP通过SimpleXML访问xml文档
SimpleXML介绍SimpleXML提供了一种简单,直观的方法来处理XML。它只有一个单一类型的类,三个函数和六个方法。使用SimpleXMLSimpleXMLElement 类是这个扩展中所有操作的核心类。可以用new关键字直接创建这种类,或是使用simplexml_load_file()或 simplexml_load_string()函数返回这种类。本文将使用清单7-1的原创 2008-05-12 13:05:00 · 10559 阅读 · 1 评论 -
PHP内存溢出Allowed memory size of 解决办法
使用脚本语言最大的好处之一就是可利用其拥有的自动垃圾回收机制(释放内存)。你不需要在使用完变量后做任何释放内存的处理,PHP会帮你完成。当然,我们可以按自己的意愿调用 unset() 函数来释放内存,但通常不需要这么做。 不过在PHP里,至少有一种情况内存不会得到自动释放,即便是手动调用 unset()。详情可考:http://bugs.php.net/bug.php?id=33595转载 2008-10-20 14:08:00 · 4116 阅读 · 2 评论 -
PHP:Snoopy抓取页面以及模拟提交表单
PHP代码$url = "http://www.taoav.com"; include("snoopy.php"); $snoopy = new Snoopy; $snoopy->fetch($url); //获取所有内容 echo $snoopy->results; //显示结果 //可选以下 $snoopy->fetchtext转载 2009-03-05 14:39:00 · 10884 阅读 · 6 评论 -
PHP中的垃圾收集
php用引用计算和写时复制(copy-on-write)来管理内存。写时复制确保在变量之间复制值时不浪费内存,引用计算确保在引用不再需要时将内存返回给操作系统。 要理解PHP中的内存管理,必须首先理解符号表(symbol table)的思想,变量有两部分--变量名(如$name)和变量值(如"Fred")。符号表是一个数组,此数组将变量名映射到其值在内存中的位置。转载 2009-03-19 16:01:00 · 1057 阅读 · 0 评论 -
50个非常有用的PHP工具
有50个有益的PHP工具,可以大大提高你的编程工作: 调试工具Webgrind Xdebug Gubed PHP Debugger DBG PHP_Debug PHP_Dyn MacGDBp 测试和优化工具PHPUnit SimpleTest转载 2009-09-08 02:31:00 · 1097 阅读 · 0 评论 -
php通过获取头信息判断图片类型
$filename = 617.gif;function pictype($file) { /*$png_header = "/x89/x50/x4e/x47/x0d/x0a/x1a/x0a"; $jpg_header = "/xff/xd8";*/ $header =原创 2010-01-25 22:51:00 · 3899 阅读 · 2 评论 -
PHP中REQUIRE和INCLUDE区别
在PHP中使用头文件,会涉及两个函数:include()和require()。这两个函数差别很小,却很重要,所以我们要认真研究一下。require()函数工作方式与XSSI相类似;不管在程序的哪个部分使用了这个函数,只有程序一开始运行,头文件的内容就被作为程序本身的一部分来处理。因此,如果您在一个条件判定语句中使用了require()函数,那么即使这个条件即使不为真,头文件也会被包含进来。原创 2010-02-26 02:52:00 · 1522 阅读 · 1 评论 -
php效率高写法
0、用单引号代替双引号来包含字符串,这样做会更快一些。因为PHP会在双引号包围的字符串中搜寻变量,单引号则不会,注意:只有echo能这么做,它是一种可以把多个字符串当作参数的“函数”(译注:PHP手册中说echo是语言结构,不是真正的函数,故把函数加上了双引号)。 1、如果能将类的方法定义成static,就尽量定义成static,它的速度会提升将近4倍。2、$row[’id’] 的转载 2010-02-26 03:17:00 · 2042 阅读 · 0 评论 -
查看页面执行php占用内存情况
今天头脑一热,想看一下页面在执行的过程中占用了多少内存,我也不知道这样做的目的是什么,可能是出于我的惯性思维吧。不过这样做也不是完全没用,你可以清楚的知道哪些页面占用的内存比较多,特别是对于使用共用主机的网站,一般空间商都会限制每个网站的资源占用情况的(包括cpu和内存)。万一在我们不知道的情况下,经常占用太多的内存,你愿意,空间商可不同意了。当然这种情况是很少出现的。memory_g转载 2010-02-26 02:53:00 · 5604 阅读 · 0 评论 -
常用的避免require/include的方法
常用的避免require/include的方法1、使用魔术函数__autoloadphp5可以使用__autoload来避免require,用的好的话,代码里头甚至看不到几个require,真是不错的东西。测试结果表明,使用__autoload之后比require_once然后再实例化大概要快3倍左右。这个函数最大的用处就是在实例化一个未明确定义的类时去寻找相应的文件并载入(是转载 2010-02-26 03:11:00 · 2320 阅读 · 0 评论 -
php-APC介绍
前面几篇文章提到了APC.很多人问我:APC是什么?这里做个比较全面的介绍:APC,全称是Alternative PHP Cache,官方翻译叫”可选PHP缓存”,但我个人觉得应该叫”另一个PHP缓存”.因为这个东西如果叫”可选PHP缓存”,容易给人一种可要可不要的,不怎么有用的错觉.APC的主页是:http://pecl.php.net/package/apc.目前的版本转载 2008-07-08 17:41:00 · 3410 阅读 · 0 评论 -
用apc来提高define的性能
php下的define()性能是很烂的,速度慢,尤其是当一个程序中有大量的常量需要定义,这个情况尤为明显。而apc这个扩展不仅仅提供了php的opcode缓存,同样也可以提供一些基本的cache功能,在apc 3.0.0版本之后,它甚至可以缓存常量。一个用apc批量定义常量的例子PLAIN TEXTCODE: $co转载 2008-07-08 17:27:00 · 842 阅读 · 0 评论 -
php apc配置
主要是加速PHP www.**.com/info.php 显示apc状态时enabledwww.**.com/apc.php 显示user cache未起作用改用版本3.0.15 问题解决 下载地址http://pecl.php.net/package/APC解压 安装/usr/local/php/bin/phpize./configure --enable-apc --e转载 2008-07-03 01:48:00 · 3472 阅读 · 0 评论 -
Web分布式数据交换(WDDX)
本章将介绍什么是WDDX,如何使用它,如何使用PHP的WDDX扩展。尽管WDDX本身不是web服务(web service),但可以利用它来创建web服务。WDDX介绍WDDX 是一项允许在保持数据完整性的前提下在系统格式中立的系统间交换数据和数据结构的XML技术。它定义了用来传送数据的XML结构,但它没有定义数据传输的机制;因此,WDDX本身不能被认为是一种web服务但却可以用来建立we原创 2008-05-12 13:12:00 · 6092 阅读 · 0 评论 -
Windows下的Memcache安装
很多phper不知道如何在Windows下搭建Memcache的开发调试环境,最近个人也在研究Memcache,记录下自己安装搭建的过程。其实我开始研究Memcache的时候并不知道居然还有memcached for Win32这个鸟东西,害得我在CnetOS下折腾1天才搞定,今天突然发现Windows下的Memcache进行开发调试完全没有问题,所以写篇Memcache的文档分享给大家。转载 2008-08-18 16:39:00 · 678 阅读 · 0 评论 -
php汉字转成对应的全拼
$d=array( array("a",-20319), array("ai",-20317), array("an",-20304), array("ang",-20295), array("ao",-20292), array("ba",-20283), array("bai",-20265), array("ban",-20257), array("bang",-20242), array(转载 2008-05-29 16:52:00 · 1904 阅读 · 0 评论 -
Memcache基础教程
Memcache基础教程2008-06-14 21:57Memcache是什么Memcache是danga.com的一个项目,最早是为 LiveJournal 服务的,目前全世界不少人使用这个缓存项目来构建自己大负载的网站,来分担数据库的压力。它可以应对任意多个连接,使用非阻塞的网络IO。由于它的工作机制是在内存中开辟一块空间,然后建立一个HashTable,Me转载 2008-08-18 16:33:00 · 789 阅读 · 0 评论