拂晓-千云暗组- 努力,执着,意志,精神

PHP命令行参数详解及应用

2014-10-26
下面是全部的php命令行参数,其中[]表示可有可无的,<>表是一定要的。 用法 php [-q] [-h] [-s] [-v] [-i] [-f ] | { [args...]} -q 安静模式。不输出HTTP头。
-s 将php程序文件转化为彩色格式的HTML(比如保留字用绿色,函数和变量为蓝色,注释为黄色而字串则是红色等等。

-f 读入并解释指明的文件。
-r 在命令行直接运行 PHP 代码。使用该参数可以在命令行运行 PHP 代码。您无需加上 PHP 的起始和结束标识符(<?php 和 ?>),否则将会导致语法解析错误。
php -r “print_r(get_defined_constants());”
注: 使用这种形式的 PHP 时,应个别注意避免和外壳环境进行的命令行参数替换相冲突。
显示语法解析错误的范例
$ php -r “$foo = get_defined_constants();”
Command line code(1) : Parse error – parse error, unexpected ‘=’
这里的问题在于即时使用了双引号 “,sh/bash 仍然实行了参数替换。由于 $foo 没有被定义,被替换后它所在的位置变成了空字符,因此在运行时,实际被 PHP 读取的代码为:
$ php -r ” = get_defined_constants();”
正确的方法是使用单引号 ‘。在用单引号引用的字符串中,变量不会被 sh/bash 还原成其原值。
$ php -r ‘$foo = get_defined_constants(); var_dump($foo);’
array(370) {
["E_ERROR"]=>
int(1)
["E_WARNING"]=>
int(2)
["E_PARSE"]=>
int(4)
["E_NOTICE"]=>
int(8)
["E_CORE_ERROR"]=>
[...]
如果您使用的外壳不是 sh/bash,您可能会碰到其它的问题。请报告您碰到的 bug
当您试图将外壳的环境变量引入到马或者用反斜线来转义字符时也可能碰到各种各样的问题,请您在使用时注意!
注: -r 在 CLI SAPI 中有效,在 CGI SAPI 中无效。
-a 交互式运行
-c 用该参数,您可以指定一个放置 php.ini 文件的目录,或者直接指定一个自定义的 INI 文件,其文件名可以不是 php.ini。例如:
$ php -c /custom/directory/ my_script.php
$ php -c /custom/directory/custom-file.ini my_script.php
 
–ini 显示php.ini所位置及相关信息
-d foo[=bar] 定义ini中的输入项 foo 的值为 bar
用该参数可以自行设置 php.ini 文件中设置变量的值
-e 输出额外信息以便调试和性能分析
-z 调入Zend扩展文件
-i 该命令行参数会调用 phpinfo() 函数,并打印出结果。如果 PHP 没有正常工作,我们建议您执行 php -i 命令来查看在信息表格之前或者对应的地方是否有任何错误信息输出。请注意输出的内容为 HTML 格式,因此输出的信息篇幅较大。
-h help本身。
-w 显示除去了注释和空格的源代码。该选项不能和 -r 参数同时使用。
-l 该参数提供了对指定 PHP 代码进行语法检查的方便的方法。如果成功,则向标准输出写入 No syntax errors detected in <filename> 字符串,并且外壳返回值为 0。如果失败,则 Errors parsing <filename> 以及内部解析器错误信息会一起被写入到标准输出,同时外壳返回值将别设置为 255。
该参数将无法检查致命错误(如未定义函数),如果您希望检测之名错误,请使用 -f 参数。
注: 该参数不能和 -r 一同使用。
-m 使用该参数,PHP 将打印出内置以及已加载的 PHP 及 Zend 模块:
1.用php -q 文件名.php 方式把php程序当shell程序来用,
2.利用php的odbc功能可以在shell命令中对数据库进行操作。
Author:admin | Categories:php | Tags: