九个PHP很有用的功能
用 __DIR__ ),下面是一个例子。
// this is relative to the loaded script's path // it may cause problems when running scripts from different directories require_once('config/database.php'); // this is always relative to this file's path // no matter where it was included from require_once(dirname(__FILE__) . '/config/database.php'); 下面是使用 __LINE__ 来输出一些debug的信息,这样有助于你调试程序: // some code // ... my_debug("some debug message", __LINE__); /* 输出 Line 4: some debug message */ // some more code // ... my_debug("another debug message", __LINE__); /* 输出 Line 11: another debug message */ function my_debug($msg, $line) { echo "Line $line: $msg\n"; } 6.生成唯一的ID有很多人使用 md5() 来生成一个唯一的ID,如下所示: // generate unique string echo md5(time() . mt_rand(1,1000000)); 其实,PHP中有一个叫?uniqid()的函数是专门用来干这个的: // generate unique string echo uniqid(); /* 输出 4bd67c947233e */ // generate another unique string echo uniqid(); /* 输出 4bd67c9472340 */ 可能你会注意到生成出来的ID前几位是一样的,这是因为生成器依赖于系统的时间,这其实是一个非常不错的功能,因为你是很容易为你的这些ID排序的。这点MD5是做不到的。 你还可以加上前缀避免重名: // 前缀 echo uniqid('foo_'); /* 输出 foo_4bd67d6cd8b8f */ // 有更多的熵 echo uniqid('',true); /* 输出 4bd67d6cd8b926.12135106 */ // 都有 echo uniqid('bar_',true); /* 输出 bar_4bd67da367b650.43684647 */ 而且,生成出来的ID会比MD5生成的要短,这会让你节省很多空间。 7.序列化你是否会把一个比较复杂的数据结构存到数据库或是文件中?你并不需要自己去写自己的算法。PHP早已为你做好了,其提供了两个函数:?serialize()和unserialize(): // 一个复杂的数组 $myvar = array( 'hello', 42, array(1,'two'), 'apple' ); // 序列化 $string = serialize($myvar); echo $string; /* 输出 a:4:{i:0;s:5:"hello";i:1;i:42;i:2;a:2:{i:0;i:1;i:1;s:3:"two";}i:3;s:5:"apple";} */ // 反序例化 $newvar = unserialize($string); print_r($newvar); /* 输出 Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two ) [3] => apple ) */ 这是PHP的原生函数,然而在今天JSON越来越流行,所以在PHP5.2以后,PHP开始支持JSON,你可以使用 json_encode() 和 json_decode() 函数 // a complex array $myvar = array( 'hello', 42, array(1,'two'), 'apple' ); // convert to a string $string = json_encode($myvar); echo $string; /* prints ["hello",42,[1,"two"],"apple"] */ // you can reproduce the original variable $newvar = json_decode($string); print_r($newvar); /* prints Array ( [0] => hello [1] => 42 [2] => Array ( [0] => 1 [1] => two ) [3] => apple ) */ 这看起来更为紧凑一些了,而且还兼容于Javascript和其它语言。但是对于一些非常复杂的数据结构,可能会造成数据丢失。 8.字符串压缩 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |