Home  >  Article  >  Backend Development  >  Some neglected PHP functions (simple arrangement)_PHP tutorial

Some neglected PHP functions (simple arrangement)_PHP tutorial

WBOY
WBOYOriginal
2016-07-21 15:39:031078browse

sys_getloadavg()
This function returns the load average information of the current system (of course not applicable under Windows). For detailed documentation, please refer to the relevant PHP documentation. There is a sample code in the document, and you can basically see its use.

Copy code The code is as follows:

$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, if "unfortunately" you do not have this function in your PHP environment, you can consider using the following code via
Copy code The code is as follows:

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);
}
}

This feature, if used properly, can reduce some pressure on the server.

pack()
pack There is also a corresponding function called unpack, which is used to compress binary strings. The author’s example in the article is very clear

$pass_hash = pack("H*", md5("my-password")); If you use PHP5, you can do this directly

$pass_hash = md5("my-password", true); // PHP 5+ One of the benefits of doing this is that it can reduce string storage space (how much can be saved? This may be another article).

Here is also a sample code that can pack array via
Copy the code The code is as follows:

< ?php
function pack_array($v,$a) {
return call_user_func_array(pack,array_merge(array($v),(array)$a));
}

cal_days_in_month()

This function can directly return the number of days in the specified month, for example

$days = cal_days_in_month(CAL_GREGORIAN, date("m"), date ("Y")); // 31 I can guarantee that you have implemented a function with similar functions yourself:^)

_()
Well, this is indeed a PHP function (possibly the shortest PHP built-in function). _() is its "nickname" and its big name is gettext().

Friends who have written WordPress skins will know the functions __() and _e(). In fact, PHP already has related functions.
Copy code The code is as follows:

// 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");

You can use gettext to write multi-language applications. Now you may be interested in how to write locale files, but this is no longer the case For the key points covered in this article, more information can be found here.

get_browser()
To be honest, I burst into tears when I saw this function. With this function, you no longer have to analyze the string $_SERVER['HTTP_USER_AGENT'] yourself.

More information can be found here. Before using this function, you may need a browscap.ini configuration file, I believe you can handle it.

debug_print_backtrace()
In the past, to view the function call stack, I would use extensions such as xdebug. In fact, the PHP5 version has built-in related functions.

By the way, I would like to share a little "painful" tip. If you can't remember the name of this function, you can use this code to achieve the same goal (it seems that it is more reliable to remember that function):
Copy code The code is as follows:

$e = new Exception();
print_r (str_replace('/path/to/code/', '', $e->getTraceAsString()));natsort()
This function is used for natural sorting, which everyone may need. Post relevant document links and sample codes

$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
# ) For the algorithm rules of natural sorting, you can refer to the document here.

glob()
The function of this function also makes people cry. Let’s not talk about the function and go directly to the sample code
Copy the code The code is as follows :

foreach (glob("*.php") as $file) {
echo "$filen";
}

Compared to you Now that we understand the purpose of this function, we can have more "plays", such as displaying the directory (via):

$dirs = array_filter(glob($path.'*'), ' is_dir'); Of course, you can also consider using the SPL extension for file recursion.

Supplementary by Shenxian:

glob has a parameter option GLOB_ONLYDIR, which can only list the directory PHP Filter
If you are still validating the string, then it is really "Out". Since PHP5.2 version, the built-in PHP Filter module is used to specifically verify whether emails, URLs, etc. are legal. Example code:

var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));Due to It is a new module, so there are many traps, such as

filter_var('abc', FILTER_VALIDATE_BOOLEAN); // bool(false)
filter_var('0', FILTER_VALIDATE_BOOLEAN); // bool( false) but this does not prevent us from trying. For more information about PHP Filter, I believe I can write another article.

-- Split --

Finally, I lament that PHP is actually a long-lasting tool. If we are not careful, we will tragically reinvent the wheel. Therefore, take a look at the PHP documentation from time to time and you will learn something new every time.

www.bkjia.comtruehttp: //www.bkjia.com/PHPjc/321649.htmlTechArticlesys_getloadavg() This function returns the load average information of the current system (of course not applicable under Windows). You can read the detailed documentation Documentation for PHP. There is a sample code in the document, basically...
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn