Home >Backend Development >PHP Tutorial >Some overlooked PHP functions (organized)

Some overlooked PHP functions (organized)

WBOY
WBOYOriginal
2016-08-08 09:29:381476browse

From: http://www.gracecode.com/posts/3013.html

You really don’t need to know, in fact, the PHP we are familiar with still has many good things that we have not discovered yet. When I saw this article, I burst into tears several times. I highly recommend it and I will sort it out myself.

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 documentation of PHP. There is a sample code in the document, and you can basically see its use.

<codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto><?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.'); } <p>PS, if "unfortunately" you do not have this function in your PHP environment, you can consider using the following code via</p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto>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); } } <p>This feature, if used properly, can reduce some pressure on the server. </p> <p>pack()</p> <p>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</p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto>$pass_hash = pack("H*", md5("my-password")); <p>If you use PHP5, you can do it directly like this</p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto>$pass_hash = md5("my-password", true); // PHP 5+ <p>The benefits of doing this One is to reduce string storage space (how much can be saved? This may be another article). </p> <p>Here is also a sample code that can pack the array via</p> <precourier new white-space:pre-wrap word-wrap:break-word border:1px solid rgb font-size:0.9em overflow-x:auto color:rgb background-color:rgb><codecourier new word-wrap:break-word font-size:0.9em overflow-x:auto><?php function pack_array($v,$a) { return call_user_func_array(pack,array_merge(array($v),(array)$a)); } </code>

cal_days_in_month()

This function can directly return the number of days in the specified month, such as

<codeCourier New',sans-serif; word-wrap:break-word; font-size:0.9em; overflow-x:auto">$days = cal_days_in_month(CAL_GREGORIAN, date("m"), date("Y")); // 31 </code>

I can guarantee that you have implemented a function with similar functions yourself :^)

_()

Well, this is indeed a PHP function (it may also be 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 comes with related functions.

<codeCourier New',sans-serif; word-wrap:break-word; font-size:0.9em; overflow-x:auto">// 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"); </code>

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 focus of this article. For more information, you can move 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’d like to share a little trick that’s “painful”. If you can’t remember the name of this function, you can use this code to achieve the same goal (it seems to be more reliable to remember that function):

getTraceAsString()));

natsort( )

This function is used for natural sorting, which everyone may need. Post the relevant document links and sample code

$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 documentation here.

glob()

The function of this function also makes people cry. Let’s not talk about the function and go directly to the example code

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

Compared with you already understand the purpose of this function, then we can have more "playing methods" ”, for example, display 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 神仙 :

glob 有个参数选项 GLOB_ONLYDIR 就可以只列目录

PHP Filter

If you are still validating the string regularly, then it is really "Out". Since PHP5.2 version, PHP Filter is built-in The module is used to specifically verify whether emails, URLs, etc. are legitimate. Sample code:

var_dump(filter_var('bob@example.com', FILTER_VALIDATE_EMAIL));

Since it is a new module, there are still many traps, such as

filter_var('abc', FILTER_VALIDATE_BOOLEAN); // bool(false) filter_var('0', FILTER_VALIDATE_BOOLEAN); // bool(false)

But this does not affect 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.


The above has introduced some neglected PHP functions (organized), including relevant content. I hope it will be helpful to friends who are interested in PHP tutorials.

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