手机版

php cli模式学习(php命令行模式)

时间:2021-11-19 来源:互联网 编辑:宝哥软件园 浏览:

php_cli模式简介php-cli是php命令行界面的缩写。顾名思义,它是php在命令行上运行的接口,不同于php环境(php-cgi、isapi等)。)运行在网络服务器上。也就是说,php不仅可以写前台网页,还可以写后台程序。PHP的CLI shell脚本适合所有PHP的优点,这使得创建一个支持脚本或系统甚至是GUI应用程序的服务器成为可能!3354注意:在windows和linux下支持php_cli模式。PHP-cli应用场景:1。多线程应用的优势,引用鸟哥的话:优势: 1。使用多个进程,内核将负责在子进程完成后回收资源。使用多个进程,子进程的异常退出不会导致整个进程的线程退出。父进程仍然有机会重建进程。3.一个常驻的主进程只负责任务分配,逻辑更清晰。php多线程——没错,应用了php多线程。虽然一般认为php没有多线程(curl属于模拟多线程而非真实多线程),但php_cli模式下的php完全是多线程。此时,php属于linux的一个守护进程。之前写《PHP多线程批量采集下载美女图片(续)》的时候,在采集程序中用curl模拟多线程,但是在执行浏览器的时候,也会遇到执行超时或者内存中止的情况,导致程序中断(几次尝试就完全成功了)。但是,如果程序是在php-cli模式下执行的,您会发现程序执行得非常快。php多线程的优势已经得到了充分的展示。注:这种多线程的方法不是很成熟,不适合大规模生成应用。偶尔用用也可以。2.在定期执行php程序之前,我总结了关于《PHP定时执行计划任务》的三种方式,其中一种就是linux的cron模式,那么这种方式是如何定期执行php程序的呢?请看下面3条。开发桌面程序。你可以在你的视窗或Linux中使用PHP做图形用户界面应用程序!你只需要PHP的命令行界面和一个GTK包。这将允许建立真正的可移植的图形用户界面应用程序(呵呵,我之前只知道php可以是桌面程序,但是现在知道使用了php_cli模式),其他的就不用学了。4.为PHP编写外壳脚本。如果不能使用bash shell或Perl,但需要一些脚本来执行,该怎么办?此时,您可以使用熟悉的php编写shell脚本。这个时候你是不是突然觉得PHP太强大了?-真正成为一种语言,并在任何地方发展它!PHP_CLI使用下面的方法win的执行方法:假设php.exe可以在dos命令中的D:xamppphp中执行这个:复制代码如下: D: \ XAMPPHPPHP。EXE D: \ XAMPHTDOCSTER。PHP可以执行test.php的这个文件。这里推荐win平台下的xampp集成环境,确实比wamp强n倍。这个集成包可以直接进入dos模式。在linux下使用php_cli找到你第一次安装php的路径。以我为例:

安装在path /usr/local/php/bin/php下的php的复制代码如下:/usr/local/php/bin/PHP/usr/local/Apache/htdocs/a . PHP可以执行a .编程PHP文件PHP_CLI需要知道如何检测环境支持php_cli模式。复制代码如下:PHP//Method 1IF(PHP _ SAPI==' CLI '){//.}//方法2IF(PHP _ SAPI _ name()===' CLI '){//.PHP _ CLI如何接收参数?默认情况下,/usr/local/php/bin/php的接收参数为$argv,这个变量是固定的!php文件中的var _ dump($ argv);获得以下结果:

可以写个简单的处理函数把这个方式转化为大家常用的获取/发布的参数模式。简单代码: 复制代码代码如下:服务器端编程语言(Professional Hypertext Preprocessor的缩写)函数parseArgs($ argv){ array _ shift($ argv);$ out=array();foreach($ argv as $ arg){ if(substr($ arg,0,2)='-'){ $ eq pos=str pos($ arg,'=');if($ eqPos===false){ $ key=substr($ arg,2);$out[$key]=isset($out[$key])?$ out[$ key]: true;} else { $key=substr($arg,2,$ eq pos-2);$out[$key]=substr($arg,$ eq pos 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;} }返回$ out } var _ dump($ argv);var _ dump(parseArgs($ argv));退出;执行结果

当然实现的方法不止一个,大家可以尝试其他方法实现!例外关于服务器端编程语言(专业超文本预处理器的缩写)的硬币指示器(硬币水平指示器的缩写)命令行界面(批处理脚本的命令行界面)还有很多参数可以加入:具体可以参考:http://PHP。net/手动/en/特性。命令行。服务器端编程语言(Professional Hypertext Preprocessor的缩写)关于定时执行时间单位是一个Linux操作系统操作系统下的定时执行工具,可以在无需人工干预的情况下运行作业,周期性作业,比如备份数据打开/etc/crontab,添加:复制代码代码如下:/usr/bin/PHP-f/data/htdocs/test。服务器端编程语言(Professional Hypertext Preprocessor的缩写)关于corntab的详细使用参考51cto专题:Linux计划任务——cron服务本文参考资料//www .JB 51。net/article/1716。htm/JB 51。net/article/37804。htm/JB 51。net/article/37796。html文件的后缀附注:2012-06-16 增加php_cli编程需知等

版权声明:php cli模式学习(php命令行模式)是由宝哥软件园云端程序自动收集整理而来。如果本文侵犯了你的权益,请联系本站底部QQ或者邮箱删除。