一些被忽视的 PHP 函数(整理)
真的是不用不知道,其实我们熟悉的 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 环境中没有这个函数,可以考虑使用下面这段代码 via
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 数组 via
<?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")); // 31
我
敢保证,你
自己实现过类似功能的函数
:^)
_()
呃,这的确也是个 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
t
相关文档:
PDO为何物
POD(PHP Data Object)扩展在PHP5中加入,PHP6中将默认识用PDO连接数据库,所有非PDO扩展将会在PHP6被从扩展中移除。该扩展提供PHP内置类 PDO来对数据库进行访问,不同数据库使用相同的方法名,解决数据库连接不统一的问题。
我是配置在windows下做开发用的。
PDO的目标
提供一种轻型、清晰、方便的 API
统 ......
先安装apache http server 一路next;
再安装php,注意选择 Apache 2.2.x Module;
安装结束以后,还需要修改 Apache 的配置文件。文件路径为
C:\Program Files\Apache
Software Foundation\Apache2.2\conf\httpd.conf。
用 Notepad 打开
httpd.conf,在文件最后有以 #BEGIN PHP INSTALLER EDITS - RE ......
经常有一些经验不足的PHP开发人员在Freenode的php IRC频道上问问题。如果问题很琐碎,或者答案显而易见,或表现得象一个菜鸟,很快他们就会发现会受到如下一些回复的炮轰:“去读该死的手册去吧”,“好好去学一学PHP吧”,“我们不是你个人的导师”或更直接的“你需要成为一个更好的PH ......
操作系统: windows xp
php版本:5.2.5 http://www.php.net/downloads.php
Apache http server 版本:2.2.6http://httpd.apache.org/download.cgi
Mysql版本: 6.0.3http://dev.mysql.com/get/Downloads/MySQL-6.0
1.apache的安装:
1)双击apache_2.2.6-win32-x86-no_ssl.msi图标,启动apache安装程序;
2)安装以一个欢迎 ......
转:http://blog.iyi.cn/start/
问题:
有没有办法在php中实现多线程呢?
假设你正在写一个基于多台服务器的php应用,理想的情况时同时向多台服务器发送请求,而不是一台接一台。
可以实现吗?
回答:
当有人想要实现并发功能时,他们通常会想到用fork或者spawn threads,但是当他们发现php不支持多线程的时候,大 ......