一些被忽视的 PHP 函数
转载自:http://www.gracecode.com/archives/3013/
作者:手气不错
真的是不用不知道,其实我们熟悉的 PHP 还有很多好东西没有发掘。看到这篇文章
,当时就泪奔了好几回,重点推荐下,顺便我自己也做个整理。
sys_getloadavg()
这个函数
返回当前系统的负载均值信息
(当然 Windows 下不适用),详细文档可以翻阅 PHP 的相关文档。文档中有段示例代码,基本上也就能看出它的用途了。
<?php
$load = sys_getloadavg();
if ($load[0] > 80) {
header('HTTP/1.1 503 Too busy, try again later');
die('Server too busy. Please try again later.');
}
PS,如果“很不幸”得你的 PHP 环境中没有这个函数,可以考虑使用下面这段代码
if (!function_exists('sys_getloadavg')) {
function sys_getloadavg()
{
$loadavg_file = '/proc/loadavg';
if (file_exists($loadavg_file)) {
return explode(chr(32),file_get_contents($loadavg_file));
}
return array(0,0,0);
}
}
这一特性如果使用得当,能减轻服务器部分压力。
pack()
pack
对应的还有个函数为 unpack
,用于压缩二进制串,文中的作者的示例非常清楚
$pass_hash = pack("H*", md5("my-password"));
如果你使用 PHP5,那么可以直接这样子
$pass_hash = md5("my-password", true); // PHP 5+
这样做的好处之一是能减少串存储空间(能节省多少呢?可能又会是另篇文章了)。
这里还有个示例代码可以 pack 数组
<?php
function pack_array($v,$a) {
return call_user_func_array(pack,array_merge(array($v),(array)$a));
}
cal_days_in_month()
该函数
可以直接返回指定月份中的天数,例如
$days = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y"));
_()
呃,这的确也是个 PHP 函数
(也有可能是最短的 PHP 内置函数)。_()
是它的“小名”,它的大名是 gettext()
。
写过 Wordpress 皮肤的朋友会了解 __()
以及 _e()
这些函数,其实 PHP 早已经自带了相关的功能。
// Set language to German
setlocale(LC_ALL, 'de_DE');
// Specify location of translation tables
bindtextdomain("myPHPApp", "./locale");
// Choose domain
textdomain("
相关文档:
/*
author: yangyu@sina.cn
description: 交换数组中两个元素的位置,元素包括key和value,具体用法见下面的例子
*/
$arr = array(11=>'a',22=>'b',33=>'c',44=>'d');
$res = array_exchange($arr, 11 ,33);
//example:
echo '<pre>';print_r ($res);echo '</pre>';
function array_excha ......
年底了,本来打算提前一周请假回家的,领导也批了,但是临时又有了任务,需要在年前搭一个演示系统,于是被扣下了。。
需要做一个多机通信的系统,我这边的任务大概就是需要管理员用户能对数据库内容进行编辑,并且通过服务器中转程序与客户用户程序通信。总共也没多少工作量,和几个开发人员简单的商讨了一下,确定了大体 ......
php:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charse ......
还是
部门无聊的考题,不过这次考的是 PHP
的能力。题目如下:
给你两个分别有 5000 个元素的数组,计算他们的差集
-- 说白了也就是用 PHP 和你认为最好的算法实现 array_diff 的算法。
初次接到这个题目,我发现这非常的简单,
于是按照以往的经验“随便”写了一个:
function array_diff($array_1, $ ......
PHP的执行效率是有目共睹的,这也是我喜欢它的原因之一,和它称为绝妙搭档的Mysql以及Apache想融合,不能不惊叹其效率了。PHP更新也很快,这里列举了目前最新版本PHP4.3.2RC4(几乎没有BUG了,估计写完这篇不久后正式版就出了),和最新版本的Mysql4.0.13的安装过程。
PHP的安装文件可以直接到 &nb ......