当前位置: 首页 > 后端技术 > PHP

PHP-CLI

时间:2023-03-29 19:27:10 PHP

PHP是一种网络开发语言。通常情况下,我们都是在WebServer中运行PHP,使用浏览器访问,所以很少关注它的命令行操作和相关参数的使用。但是,特别是在类Unix操作系统上,PHP可以作为一种脚本语言来执行类似于shell的处理任务。php命令行(CLI)参数详解要查看PHP的所有命令行参数,使用php-h命令。我们将对大部分常用的命令行参数一一进行讲解,以加深对PHP能力的理解,更快速地在服务端命令行使用PHP或调试因不熟悉环境而出现的各种问题。-a以交互式shell模式运行-c|指定php.ini文件所在目录-n指定不使用php.ini文件-dfoo[=bar]定义一个INI实体,key是foo,value是'bar'-e生成用于调试和分析的扩展信息-f解释并执行文件。-h打印帮助-i显示PHP的基本信息-l执行语法检查(lint)-m显示编译模块到内核-r运行PHP代码,不需要使用标签-B执行PHP处理输入前的代码-R将每行输入作为PHP代码运行-F为每个输入行解析并执行-E在处理完所有输入行后运行PHP-H隐藏从外部工具传递的任何参数。-S:运行内置web服务器。-t指定内置web服务器的文档根目录-s输出带有HTML语法高亮的源代码-v输出PHP版本号-w输出不带注释和空格的源代码-z加载Zend扩展文件.args...传递给要运行的脚本的参数。当第一个参数以-开头或从标准输入读取脚本时使用--参数number--ini显示PHP配置文件名--rf显示函数的信息。--rc显示有关类的信息。--re显示有关分机的信息。--rz显示有关Zend扩展的信息。--ri显示扩展配置信息。上面列出了PHP命令的所有参数和注释,接下来我们将比较常用的参数举例说明。以交互式shell方式运行php使用过Python的朋友都熟悉Python的交互式shell。在命令行中,如果我们直接输入python命令,就会进入python交互式shell程序,然后就可以交互式的进行一些计算任务了。在PHP命令行中,也提供了类似的功能,使用-a参数可以进入交互式shell模式。在这个shell中,我们可以执行一些简单的任务,而不必总是创建一个新的php文件。更详细的使用说明,请参考官方文档。运行内置的网络服务器从PHP5.4.0开始,PHP的命令行模式提供了一个内置的网络服务器。使用-S开始运行Web服务。假设我们当前在/Users/mylxsw/codes/php/aicode/demo这个目录下,这个目录下有一个index.php文件。$lsindex.php$catindex.phpfilesuserredis这个程序是免费软件;你可以重新分发它和/或修改我们可以使用以下参数更方便地查看此信息--rf显示有关函数的信息。--rc显示有关类的信息。--re显示关于扩展的信息。--rz显示有关Zend扩展的信息。--ri显示扩展名的配置信息。比如我们要查看扩展redis的配置信息$php--riredisredisRedisSupport=>enabledRedisVersion=>2.2.7查看redis类的信息$php--rcredisClass[classRedis]{Constants[19]{Constant[integerREDIS_NOT_FOUND]{0}...Methods[201]{...Method[publicmethodecho]{}...查看函数printf的信息$php--rfprintfFunction[functionprintf]{Parameters[2]{Parameter#0[$format]Parameter#1[...$args]}}语法检查有时候,我们只需要检查php脚本是否有语法错误,而不需要执行它,比如在一些编辑器或者ID中在E中检查PHP文件的语法错误使用-l(--syntax-check)仅检查PHP文件的语法。$php-lindex.phpNosyntaxerrorsdetectedinindex.php如果此时我们的index.php中存在语法错误$php-lindex.phpPHPParseerror:syntaxerror,unexpected'echo'(T_ECHO)inindex.phponline3Parseerror:syntaxerror,unexpected'echo'(T_ECHO)inindex.phponline3Errorsparsingindex.php在web程序中,我们可以通过改变url的参数为PHP环境提供不同的输入,但是如何在命令行脚本程序中获取外部输入呢?在用C语言开发程序时,我们通常会在main函数中提供两个可选参数intmain(intargc,char*argv[]),这两个参数是命令行提供的输入参数。在PHP中,提供了两个全局变量$argc和$argv用于命令行输入。$argc包含$argv数组中元素的数量$argv是一个包含提供的参数的数组,第一个参数始终是脚本文件的名称假设我们有一个名为console.php$arg){echo"{$index}:{$arg}\n";}在命令行执行脚本$phpconsole.phphelloworld命令行参数个数:3命令行参数:0:console.php1:hello2:world可以看到,第0个参数就是我们执行的脚本名称。需要注意的是,如果提供的第一个参数以-开头,需要在前面加上--来告诉php后面的参数是提供给我们脚本的,不是提供给php执行文件的(php-r'var_dump($argv);'--H)。另外,在脚本中,我们可以通过php_sapi_name()函数判断是否在命令行下运行$php-r'echophp_sapi_name(),PHP_EOL;'cli

最新推荐
猜你喜欢