天天躁日日躁狠狠躁AV麻豆-天天躁人人躁人人躁狂躁-天天澡夜夜澡人人澡-天天影视香色欲综合网-国产成人女人在线视频观看-国产成人女人视频在线观看

一些被忽視的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
textdomain("myphpApp");

echo _("Have a nice day");

利用 gettext 可以編寫多語言的應用,現在您感興趣的可能就是如何編寫 locale 文件,這但已經不是此文涉及的重點,更多信息可以移步到這里。

get_browser()
坦白講,見到這個函數我當時就徹底淚奔。有了這個函數,再也不用自己去分析 $_SERVER['HTTP_USER_AGENT'] 這個字符串了。

更多的信息可以參考這里。在使用此函數前,你可能需要個 browscap.ini 配置文件,相信你可以搞定的。

debug_print_backtrace()
以前查看函數調用堆棧,我會使用 xdebug 等的擴展,其實 php5 版本以后已經內置了相關的函數。

順便再分享個“蛋疼”的小技巧,如果你記不住這個函數的名字,可以用這段代碼同樣能達到目的(看起來還是記住那個函數靠譜):
復制代碼 代碼如下:
<?php
$e = new Exception();
print_r(str_replace('/path/to/code/', '', $e->getTraceAsString()));natsort()
這個函數用于自然排序,這個大家可能都要用到。貼下相關的文檔鏈接以及示例代碼

$items = array("100 apples", "5 apples", "110 apples", "55 apples");

// normal sorting:
sort($items);
print_r($items);
# Outputs:
# Array
# (
# [0] => 100 apples
# [1] => 110 apples
# [2] => 5 apples
# [3] => 55 apples
# )

natsort($items);
print_r($items);
# Outputs:
# Array
# (
# [2] => 5 apples
# [3] => 55 apples
# [0] => 100 apples
# [1] => 110 apples
# )有關自然排序的算法規則,可以參考這里的文檔。

glob()
這個函數的功能同樣讓人感到淚奔,先不說功能直接上示例代碼
復制代碼 代碼如下:
foreach (glob("*.php") as $file) {
echo "$file/n";
}

相比你已經了解該函數的用途了,那么我們就可以有更多的“玩法”,例如就顯示目錄(via):

$dirs = array_filter(glob($path.'*'), 'is_dir');當然,文件遞歸你也可以考慮使用下 SPL 擴展。

補充 by 神仙:

glob 有個參數選項 GLOB_ONLYDIR 就可以只列目錄php Filter
如果你還在正則驗證字符串,那么就真的“Out”了。自 php5.2 版本以后,內置了 php Fliter 模塊用于專門驗證 電子郵件、URL 等是否合法,示例代碼:

var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));由于是新生的模塊,因此還有很多的陷阱,例如

filter_var('abc', FILTER_VALIDATE_BOOLEAN); // bool(false)
filter_var('0', FILTER_VALIDATE_BOOLEAN); // bool(false)但這不影響我們去嘗試。有關 php Filter 的更多信息,相信能拎出來另外寫篇文章了。

-- Split --

最后,感嘆 php 其實是個歷久彌新的工具,不小心我們就會悲劇性得重復造了只輪子。因此,時常看看 php 文檔每次都會有新的收獲。

php技術一些被忽視的PHP函數(簡單整理),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 最近日本字幕MV免费观看在线 | 精品第一国产综合精品蜜芽 | 欧美乱子YELLOWVIDEO | 国产精品丰满人妻AV麻豆 | 亚洲在线视频自拍精品 | 99久久国产综合精品成人影院 | 成人影片大全 | 极品少妇高潮啪啪AV无码 | 视频一区视频二区在线观看 | 泡妞高手在都市免费观看 | 老师掀开短裙让我挺进动态 | 亚洲欧美日本国产在线观18 | 午夜伦理在线观看 | 色网址在线观看 | 美女夫妻内射潮视频 | 男人边吃奶边挵进去呻吟漫画 | 刺激性视频黄页 | 黄梅戏mp3大全 | 四虎影院网红美女 | 啊灬啊灬啊灬快灬深高潮啦 | 91国在线啪精品一区 | 9966在线观看免费高清电影 | 偷窥 亚洲 色 国产 日韩 | 嫩草影院永久在线一二三四 | 久久视热频国产这里只有精品23 | 无套暴躁白丝秘书 | 超碰caopro熟女m超碰分类 | 最新影音先锋av资源台 | 九九热精品在线观看 | 吸奶舔下面 | old老男人野外树林tv | 亚洲 小说 欧美 激情 另类 | 亚洲 日韩 在线 国产 视频 | 俄罗斯孩交精品 | Chinesetube国产中文 | 久久青草免费91线频观看站街 | 依人青青青在线观看 | 孕交videosgratis乌克兰 | 蕾丝边娱乐网 | 午夜办公室在线观看高清电影 | 国产国产成人人免费影院 |