Introduction to php_cli mode
php-cli is the abbreviation of php Command Line Interface. As its name means, it is the interface for php to run on the command line, which is different from that on the web server. Running PHP environment (php-cgi, isapi, etc.) In other words, PHP can not only write front-end web pages, it can also be used to write background programs. PHP CLI Shell Scripting applies all the advantages of PHP, enabling the creation of either server-side scripts or system or even applications with GUI! ——Note: Both windows and Linux support php_cli mode
PHP-cli application scenarios:
1. Multi-threaded application
Benefits in this area, quote Brother Niao’s words:
Advantages:
1. When using multiple processes, after the child process ends, the kernel will be responsible for recycling resources
2. When using multiple processes, the abnormal exit of the child process will not cause the entire process Thread Exit. The parent process still has a chance to rebuild the process.
3. A resident main process, only responsible for task distribution, the logic is clearer.
php multi-threading - yes, it is a php multi-threaded application, although Everyone generally believes that PHP does not have multi-threading (curl simulates multi-threading rather than real), but PHP in php_cli mode is completely multi-threaded. At this time, php belongs to a daemon process of Linux. When I wrote "PHP Multi-threaded Batch Collection and Download of Beauty Pictures (Continued)" before, although curl was used to simulate multi-threading in the collection program, execution timeout or memory abort would also be encountered when the browser executed it. Causes the program to be interrupted (it takes several attempts to completely succeed), but if you execute it in php-cli mode, you will find that the program executes very quickly, and the advantages of PHP multi-threaded execution are fully demonstrated.
Note: This multi-threading method is not very mature and is not suitable for large-scale generation applications. It can be used occasionally
2. Execute the php program regularly
I summarized the previous One of the three ways to use "PHP to execute scheduled tasks regularly" is to use the cron method of Linux. So how does this method execute PHP programs regularly? Please see below
3. Develop desktop applications
You can make your graphical user interface (GUI) applications in Windows or Linux using PHP! All you need is PHP's command line interface and a package of GTK. This will allow the creation of truly portable graphical user interface applications (haha, I only knew that php can be used as desktop programs before, but now I know that it uses php_cli mode), and there is no need to learn anything else.
4. Write PHP shell scripts
What should you do if you don’t know how to use bash shell or Perl, but you need some scripts to execute? At this time, you can completely write shell scripts using PHP that you are familiar with. At this time, do you suddenly feel that PHP is too powerful? ——Truly develop one language everywhere!
How to use PHP_CLI
Win the following execution method:
Assume that php.exe is in D:xamppphp and the dos command can be executed like this:
and you can execute it test.php file. Here we recommend the xampp integrated environment under the win platform, which is truly N times more powerful than wamp. This integrated package can directly enter dos mode.
Use php_cli under Linux
First find the path where you installed php, take me as an example:

php is installed in the path /usr/local/ Copy the code under php/bin/php
can execute a. php file
What you need to know about PHP_CLI programming
How to detect that the environment supports php_cli mode?
//Method 1
if (PHP_SAPI === 'cli')
{
// ...
}
//Method 2
if (php_sapi_name() === 'cli')
{
// ...
}
How to receive PHP_ClI Parameters?
By default, the parameter received by /usr/local/php/bin/php is $argv. This variable is fixed! In the php file, var_dump($argv);
gets the following results:

You can write a simple processing function to convert this method into a commonly used one. Parameter mode for GET/post.
Simple code:
function parseArgs($argv){
array_shift($argv);
$out = array();
foreach ($argv as $arg) {
if (substr($arg,0,2) == '--'){
$eqPos = strpos($arg,'=');
if ($eqPos === false ){
$key = substr($arg,2);
$out[$key] = isset($out[$key]) ? $out[$key] : true;
} else {
$key = substr($arg,2,$eqPos-2);
$out[$key] = substr($arg,$eqPos+1);
}
} else if (substr($arg,0,1) == '-'){
if (substr($arg,2,1) == '='){
$key = substr($arg, 1,1);
$out[$key] = substr($arg,3);
} else {
$chars = str_split(substr($arg,1));
foreach ($chars as $char){
$key = $char;
$out[$key] = isset($out[$key]) ? $out[$key] : true;
}
}
} else {
$out[] = $arg;
}
}
return $out;
}
var_dump($argv);
var_dump(parseArgs($argv));exit;
Execution result:

Of course, there is more than one way to achieve it, You can try other methods to achieve it!
Exception There are many parameters that can be added to the cli of php: for details, please refer to: http://php.net/manual/en/features.commandline.php
About scheduled execution
Cron is a scheduled execution tool under Linux that can run jobs without manual intervention. For periodic jobs, such as backing up data, open /etc/crontab and add:
/usr/bin/php -f /data/htdocs/test.php
For detailed use of corntab, please refer to the 51cto topic: Linux scheduled tasks - cron service
Reference materials for this article
http://www.jb51.net/article/1716.htm
http:// www.jb51.net/article/37804.htm
http://www.jb51.net/article/37796.htm
Note: 2012-06-16 Added php_cli programming requirements, etc.

php把负数转为正整数的方法:1、使用abs()函数将负数转为正数,使用intval()函数对正数取整,转为正整数,语法“intval(abs($number))”;2、利用“~”位运算符将负数取反加一,语法“~$number + 1”。

实现方法:1、使用“sleep(延迟秒数)”语句,可延迟执行函数若干秒;2、使用“time_nanosleep(延迟秒数,延迟纳秒数)”语句,可延迟执行函数若干秒和纳秒;3、使用“time_sleep_until(time()+7)”语句。

php除以100保留两位小数的方法:1、利用“/”运算符进行除法运算,语法“数值 / 100”;2、使用“number_format(除法结果, 2)”或“sprintf("%.2f",除法结果)”语句进行四舍五入的处理值,并保留两位小数。

php字符串有下标。在PHP中,下标不仅可以应用于数组和对象,还可应用于字符串,利用字符串的下标和中括号“[]”可以访问指定索引位置的字符,并对该字符进行读写,语法“字符串名[下标值]”;字符串的下标值(索引值)只能是整数类型,起始值为0。

判断方法:1、使用“strtotime("年-月-日")”语句将给定的年月日转换为时间戳格式;2、用“date("z",时间戳)+1”语句计算指定时间戳是一年的第几天。date()返回的天数是从0开始计算的,因此真实天数需要在此基础上加1。

在php中,可以使用substr()函数来读取字符串后几个字符,只需要将该函数的第二个参数设置为负值,第三个参数省略即可;语法为“substr(字符串,-n)”,表示读取从字符串结尾处向前数第n个字符开始,直到字符串结尾的全部字符。

方法:1、用“str_replace(" ","其他字符",$str)”语句,可将nbsp符替换为其他字符;2、用“preg_replace("/(\s|\ \;||\xc2\xa0)/","其他字符",$str)”语句。

php判断有没有小数点的方法:1、使用“strpos(数字字符串,'.')”语法,如果返回小数点在字符串中第一次出现的位置,则有小数点;2、使用“strrpos(数字字符串,'.')”语句,如果返回小数点在字符串中最后一次出现的位置,则有。


Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

SublimeText3 Chinese version
Chinese version, very easy to use

Dreamweaver Mac version
Visual web development tools

WebStorm Mac version
Useful JavaScript development tools

Notepad++7.3.1
Easy-to-use and free code editor

SecLists
SecLists is the ultimate security tester's companion. It is a collection of various types of lists that are frequently used during security assessments, all in one place. SecLists helps make security testing more efficient and productive by conveniently providing all the lists a security tester might need. List types include usernames, passwords, URLs, fuzzing payloads, sensitive data patterns, web shells, and more. The tester can simply pull this repository onto a new test machine and he will have access to every type of list he needs.
