Reader's Digest

Digest your Internet

Archive for the 'Programming Area' Category

PHP 应用技巧七则

PHP (Hypertext Preprocessor)是一种 HTML 内嵌式的语言,也是目前比较流行的网页编程语言。它支持的后端数据库种类凡多,几乎含盖了当前的所有数据库系统。同时它包含了一般语言有的数学运算、时间处理、文件系统、字符串处理、行程处理等功能,再加上它是免费的系统,使得成本与效益比,几乎等于无限大。 下面是我在用PHP做网站时,总结出一些小技巧,拿出来飨以大家。 1、判断某个函数是否被支持 由于在PHP中我们可以灵活的使用增加或者减少php支持的模块,所以有的时候我们在使用PHP之前,总是会首先确定某个模块是否被加载,比如,看看GD图形模块是否被支持,可以用下面的这段代码: if(!function_exists(‘imagecreate’)) { die(‘这个主机目前不支持GD图形模块’); } ?> 同样的道理,我们可以利用类似的代码,测试 MSSQL,OCI等模块是否被支持。 2、在字符串中把网址改成超级链接 在网页中提交表单时,经常在提交的说明文本中出现一些网址,比如个人主页等信息,如果在显示时自动将其转为超级链接,那将是一件很惬意的事,就像用WORD编辑文档时自动出现超级链接一样。下面这段代码就很好的实现了其功能。 $string = “连接赛迪网http://www.ccidnet.com 站点”; //注意:连接后需要有个空格或回车。 $string = eregi_replace(“http://([^ ,rn]*)”,”<a href={CONTENT} tarrget=_blank>{CONTENT}</a>”,$string); $string = eregi_replace(“ftp://([^ ,rn]*)”,”<a href={CONTENT} target=_blank>{CONTENT}</a>”,$string); print $string; ?> 3、用PHP处理多个同名复选框 如果一个表单中有多个同名复选框,在提交到php时却只有一个值,而并不像asp那样是一串用逗号分割的值。解决的方法是利用数组。将复选框的name后面加上[],例如: 改为:。这样php将得到一个叫pp的阵列。在提交的表单中先用Count(pp)来判断数组的个数即选中的个数,然后对数组进行分别处理就行了。 同样的道理也适应于处理下拉框的多选问题。 4、利用static实现表格的颜色隔行显示 我们用PHP从数据库查询数据,并将结果输出到浏览器上,如果结果有很多行,表格的bgcolor(背景色)如果全是单色的,浏览者会感觉不太舒服。那么怎样做使表格各行的颜色不同呢?请看下面代码: function getcolor() { static $colorvalue;//定义一个静态变量 if($colorvalue==”#eeeeee”) $colorvalue=”#F5F5F5″; else $colorvalue=”#eeeeee”; return($colorvalue); } print(“<table […]

Read the rest of this entry »

PHP比ASP优秀的七个理由

ASP是微软公司实现动态网页的一种技术。ASP支持一些脚本语言,主要以VBScripp为主。与ASP相比较,你还可以选择另一中开放源代码编程语言——PHP,PHP可以运行在多种操作系统下,其中包括Linux和windows。 虽然ASP是一种不错的技术,但从长远考虑我相信PHP在将来的技术领域里会有不凡的表现。 我认为有七个理由可以说明PHP比ASP更优秀: 1、速度、速度、速度 当我第一次运行PHP脚本程序时,我不禁对自己说:“太快了”,当时我是在仪态166MHZ的机器上运行我的程序的,但运行的速度仍然很快。 ASP是永远也不会象PHP这样快的,因为ASP是建立在COM体系结构之上的。当用VBScript写ASP脚本时,实际上实在使用COM的对象,当向用户浏览器发送信息时,它用的是Response对象的write方法,当它访问数据库和文件系统的时候,它用的是其他的COM对象。这些COM对象的使用使运行速度下降。 在PHP代码中,所有的工作都运行在PHP的内存空间中,也就是说PHP不是基于COM对象的,所以的他的运行速度会快一些。 下面是我们在MSSQL7 40次运行一个查询语句的执行时间统计: PHP Querying MSSQL7 时间(秒) 用 MSSQL extension 01.88 用 ODBC extension 09.54 用 ODBC via COM (ADO) 17.28 用OLEDB via COM 06.19 当我们使用PHP.ODBC,访问数据库用了9.54秒,而用COM接口去连接数据库需要比PHP所用的时间高80%。 OLEDB是微软的一种高速访问数据库的技术,他比ODBC要快。但当我们所PHP和OLEDB的效率实验时,结果是PHP的整体性能比OLEDB高200%,如此的出一个结论,如果不采用COM可以获得较快的执行速度。 当然PHP的执行速度还不是最快的,但我们才刚刚开始起步,我们会逐步的完善他,而且PHP是一种开放源代码编程语言,世界上许多程序员在不断的完善他的技术,相信他一定会比非开放源代码系统获得更高的执行速度的。 2、高级内存管理 在IIS4下,一个ASP脚本header.asp,如果被20个页面所包含,那么运行的时候,在内存当中会保留这20个header.asp的编译副本,IIS5解决了这个问题,但只有windows2000才支持IIS5,由于这种IIS5的不能向下兼容的原因,许多服务器仍然要使用IIS4下的低级的内存管理。 而在PHP中,不会存在这种问题,只有当require时,才会调用某个include文件。 3、没有后顾之忧 我非常憎恨的一件事情就是会买到一件不放心的产品,比如当你买了一辆汽车,但由于发动机是坏的,你需要更换他;当你买了一栋房子的时候,你要去修补漏雨的屋顶。 那么ASP旧乡这些产品一样,当你买了ASP之后,如果你需要加密技术,你就要买ASPEncrypt;当你需要Email管理时,你就要买ServerObjets Qmail;当你需要文件上传时,你还要买Artisans SA-FileUp. 4、MySQL使PHP更精彩 PHP与MySQL的组合既简单又精彩。PHP有许多管理和维护MySQL的工具,对MySQk的支持是最全面的。许多有用的函数如mysql_insert_id和mysql_affected_rows等,其他的数据库则没有。 ASP和PHP都是中型网站的较理想的解决方案,但PHP与MySQL的紧密结合使PHP更加优越。 MySQL的虚度比Microsoft Access速度快,Mssql和Oracle速度比MySQL要快,可是费用较高。 5、Java和C++的变成风格 这个优点只是一个看法。 我知道你不会相信一个Visual Basic程序员会因为PHP有Java和C++的编程风格而转向使用PHP,但你会相信有许多人还是喜欢Java和C++的,PHP是一种具有这两种语言的编程风格的较容易学习的语言。 PHP支持结构化编程,在VB因为他的继承性使用类还是较少的。而PHP的象Java和C++一样的继承性使一个大型的程序中到处都充满了类的影子。 6、Bug的处理。 你是否曾经要求Microsoft修改ASP的一些Bug呢?如果你不是一个象Boeing一样的组织,你无法获得迅速而恰当的修改,把么当你遇到Bug而停止工作时,如果这个Bug不修改,你将无法继续你的工作的。 PHP,当你发现Bug时,你可以修改他,如果你没有专家的水平,你可以请专家修改,并且你的修改会得到开放代码组织的接受和认可。 7、移植性 Microsoft经常修改ASP,下一版本叫ASP+,现在已经开始测试。我相信他们会修改许多我曾经提到过的问题。但也无庸质疑的,Microsoft会将你限制在他们的产品范围之内的。 我曾经是一个苹果机的程序员,当windows95问世后,我开始转变,但许多原来的代码都无法在windows95下运行,这些代码现在被放在一边,我非常的遗憾。所以我不希望在windows下再出现这样的悲剧。 […]

Read the rest of this entry »

介绍几本 PHP 书籍和一些 PHP 相关资源链接

相关链接: http://www.php.net PHP 官方站点,包含非常全面的 PHP 信息,能够从这里获得帮助。 http://pear.php.net PEAR 官方主页。 http://smarty.php.net 官方 Smarty 模板引擎主页。 http://news.php.net 热闹非凡的 PHP 讨论社区。 http://bugs.php.net 在这里报告你发现的 PHP 的 BUG 。 http://snaps.php.net/ 在这里总能找到最新版本的 PHP 源代码和压缩包。 http://cvs.php.net http://qa.php.net http://www.zend.com Zend 公司官方站点。 http://www.mysql.com MySQL 公司官方网站 http://www.apache.org Apache 的官方站点 http://www.phpe.net 超越 PHP,里面有很多经典文章和 PHP Class 下载。 http://expert.csdn.net 有一个人气不错的 PHP 讨论板块,我也在那受益不浅。 http://blog.csdn.net/countstars/ 我的 Blog,如果有任何问题或者建议等,可以到这里和我交流。 http://www.openphp.cn 最后这个,是我正在写的一个 PHP 技术站点,希望不久的将来能够完成它,并为喜欢 […]

Read the rest of this entry »