关于PHP你可能不知道的10件事

 小编之前也曾报导过PHP开发人员容易忽略的几点精华,除了一些精华技术方法外,很多细微之处也是程序员们容易忽略的,下面我们为您总结了10个关于PHP你可能不知道的事情。

  关于PHP更多内容,欢迎访问:PHP开发基础入门

  1.使用ip2long() 和long2ip()函数来把IP地址转化成整型存储到数据库里。

  这种方法把存储空间降到了接近四分之一(char(15)的15个字节对整形的4个字节),计算一个特定的地址是不是在一个区段内页更简单了,而且加快了搜索和排序的速度(虽然有时仅仅是快了一点)。

  2.在验证Email地址的时候使用checkdnsrr() 函数验证域名是否存在。

  这个内置函数能够确认指定的域名能够解析成IP地址。该函数的PHP 文档的用户评论部分有一个简单的用户自定义函数,这个函数基于checkdnsrr(),用来验证 email 地址的合法性。对于那些认为自己的Email地址是memory@wwwphp100.net而不是memory@php100.net的家伙们,这个方法可以很方便的抓住他们。

  3.如果你使用的是PHP 5和MySQL 4.1 或者更高的版本,考虑用mysqli_* 系列函数。

  一个很好的功能就是你可以使用预处理语句,如果你在维护一个数据库密集型站点,这个功能能够加快查询速度。一些评估分数。

  4.学会爱上三元运算符。

  5.如果你在项目中感觉到有可复用的部分,在你写下一行代码前先看看PEAR中是否已经有了。

  很多PHP程序员都知道 PEAR 是一个很好的资源库,虽然还有很多程序员不知道。这个在线资源库包含了超过400个可以复用的程序片段,这些程序片段你可以立即用刀你的程序里。除非说你的项目真的是非常特别的,你总能找到帮你节省时间的 PEAR包。

  6.用 highlight_file()来自动的打印出格式化的很漂亮的源代码。

  如果你在留言板、IRC 这些地方寻求一个脚本的帮助的话,这个函数用起来非常的顺手。当然了,要小心不要意外的泄露出你的数据库连接信息和密码等。

  7.使用 error_reporting(0)函数来防止用户看到潜在的敏感错误信息。

  在理想情况下,发布服务器应该在php.ini 里完全禁止。但是如果你用的是一个共享的 web 服务器的话,你没有自己的 php.ini 文件,那么这种情况下你最好的选择就是在所有脚本的第一行前加上 error_reporting(0);(或者使用 require_once() 方法)。这就能够在出错的时候完全屏蔽敏感的SQL查询语句和路径名。

  8.在网数据库中存储很大的字符串之前使用 gzcompress() 和 gzuncompress() 来显式的压缩/解压字符串。

  这个PHP内置函数使用 gzip 算法,可以压缩普通文本达 90%。在我每次要读写BLOB类型的字段的时候都使用这些函数。唯一额例外就是当我需要全文检索的时候。

  9.通过“引用”传递参数的方法从一个函数中得到多个返回值。

  就像三元运算符一样,大部分受过正式编程训练的程序员都知道这个技巧。但是那些 HTML 背景大于 Pascal 背景的程序员都或多或少的有过这样的疑问“在仅能使用一次 return 的情况下,从一个函数里返回多个值?”答案就是在变量前加上一个 “&” 符号,通过“引用”传递而非“值”传递。

  10.完全理解“魔术引号”和 SQL 注入的危险性。

  我希望阅读到这里的开发者都已经很对SQL注入很了解了。不过我还是把这条列在这里,是因为这个确实有点难以理解。

时间: 2024-11-05 14:39:18

关于PHP你可能不知道的10件事的相关文章

张小龙:关于微信你可能不知道的10件事

中介交易 SEO诊断 淘宝客 云主机 技术大厅 不管是互联网业界,还是非互联网领域的产品爱好者,对微信.微信团队以及张小龙本人都有不完全了解,因为张小龙甚少在公众场合出现,微信团队过去也只有在极客公园的活动上进行过分享. 2月底,微信负责人.腾讯副总裁张小龙接受了<商业价值>杂志和极客公园的采访,采访过程中聊了很多具有启发性的话题.我们将采访的内容整理成了数篇文章.本文是专访系列的第一篇,关于微信你可能不知道的10件事. 事实上,极客公园一直在跟踪微信的发展,在版本4.0 后,我们几乎每个版本

4G你一定不知道的10件事

  你们天天说4G,月月说4G,我家怎么就一直没信号?也不是荒山野岭难道被抛弃了?累觉不爱啊!另外,4G那么快的网速到底干啥最爽?一定要去营业厅换卡吗?我买到的所有4G手机速度都一样快吗? 在4G普及初期,很多人都有着各种各样的问题,针对一些关注度较高,或是刁钻古怪的问题,我们特意进行了实地测试,并请教相关资深人士,为大家做出权威解答. 1.我家没4G信号--别急,正以每天2-3平方公里的覆盖速度狂奔 4G不论速度有多快,没信号都是白搭.相信办理过4G业务,或者最近去过营业厅的小伙伴们,都已经大

PHP你所不知道的10件事

1. 使用 ip2long() 和 long2ip() 以整型(integer)方式储存IP地址到数据库,而非字符串方式.这将几乎减少一半的储存空间(char(15)15个字节,integer则是8个字节),而且也更容易计算某一IP地址是否在一个范围之内.同时也加速搜索和排序. 2. 应用checkdnsrr()检查域名是否存在,来验证email地址的一部分.这个checkdnsrr()内建函数可以通过相应的域名或者IP地址查询DNS记录.有PHP开发者利用这个函数编写了一个自定义函数,能验证e

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程

关于Java性能监控您不知道的5件事,第2部分:利用JDK内置分析器进行Java进程监控 全功能内置分析器,如 JConsole 和 VisualVM 的成本有时比它们的性能费用还要高 - 尤其是在生产软件上运行的系统中.因此,在聚焦 Java 性能监控的第 2 篇文章中,我将介绍 5 个命令行分析工具,使开发人员仅关注运行的 Java 进程的一个方面. JDK 包括很多命令行实用程序,可以用于监控和管理 Java 应用程序性能.虽然大多数这类应用程序都被标注为 "实验型",在技术上不

关于多线程编程您不知道的 5 件事 有关高性能线程处理的微妙之处

虽然很少有 Java 开发人员能够忽视多线程编程和支持它的 Java 平台库,更少有人有时间深入研究线程.相反地,我们临时学习线程,在需要时向我们的工具箱添加新的技巧和技术.以这种方式构建和运行适当的应用程序是可行的,但是您可以做的不止这些.理解 Java 编译器的线程处理特性和 JVM 将有助于您编写更高效.性能更好的 Java 代码. 在这期的 5 件事 系列 中,我将通过同步方法.volatile 变量和原子类介绍多线程编程的一些更隐晦的方面.我的讨论特别关注于这些构建如何与 JVM 和

关于Java Database Connectivity您不知道的5件事:提升您和JDBC API的关系

关于Java Database Connectivity您不知道的5件事:提升您和JDBC API的关系 目前,许多开发人员把 Java Database Connectivity (JDBC) API 当作一种数据访问平台,比如 Hibernate 或 SpringMany.然而 JDBC 在数据库连接中不仅仅充当后台角色.对于 JDBC,您了解的越多,您的 RDBMS 交互效率就越高. 在本期 5 件事 系列 中,我将向您介绍几种 JDBC 2.0 到 JDBC 4.0 中新引入的功能.设计

[转载] Flash开发者需要知道的10件事

来源:http://www.infoq.com/cn/news/2010/02/Flash-ten-things 此前,我们发布的新闻谈到了每个Flex开发者需要知道的10件事,本文将继续这个主题,谈谈每个Flash开发者需要知道的10件事. 近日John Lindquist谈到了在为Roundarch公司招聘Flash/Flex开发人员时的一些感受.他认为最难的地方在于问什么问题才能最好地了解到应聘者的Flash /Flex开发技能.因此,他给出了一个列表并说到:"根据我的经验,通过这个列表能

关于电子钱包需要知道的10件事

1月15日消息,据http://www.aliyun.com/zixun/aggregation/16417.html">BusinessInsider网站报道,移动支付和电子钱包正在进入我们的生活的各个方面,但是对于这一新生的事物,人们知道的并不清楚,以下为您盘点关于它需要知道的10件事: 1.在线支付领域的"三巨头" 少数几个公司已经在电子在线支付领域取得领先地位:谷歌.亚马逊和PayPal.现在他们在尝试进军日常生活业务了.谷歌钱包服务允许人们把钱存在手机中,然后

思科全球黄金认证 你需要知道的10件事

欢迎来到Cisco Global Gold! 多年来,思科正在为其合作伙伴计划(Cisco Global Gold)增加新的认证级别. 思科全球黄金认证 你需要知道的10件事 思科全球合作伙伴组织战略.规划与计划高级总监Marc Surplus表示:"世界正在发生变化,支持全球客户变得越来越重要.随着软件作为思科产品组合的一部分逐渐成为常态化,我们开始推动企业协议(ELA),合作伙伴需要在整个客户生命周期中以一致的方式在全球范围内推动部署." 以下总结了思科渠道合作伙伴需要了解的关于新