代人做网站,网络规划设计师大纲,北京有几家宽带网络公司,手机软件下载网站wap模板转自#xff1a;http://www.cnblogs.com/myjavawork/articles/1869205.html 注意#xff1a;在安装php时需要将php 的安装目录加到环境变量 PATH 中 (右击我的电脑-属性-高级-环境变量, 如果存在 PATH 则在原来的 PATH 中加入你的PHP安装目录, 如果不存在则新建一…转自http://www.cnblogs.com/myjavawork/articles/1869205.html 注意在安装php时需要将php 的安装目录加到环境变量 PATH 中 (右击我的电脑-属性-高级-环境变量, 如果存在 PATH 则在原来的 PATH 中加入你的PHP安装目录, 如果不存在则新建一个 PATH) 以下是 PHP 二进制文件即 php.exe 程序提供的命令行模式的选项参数您随时可以通过 PHP -h 命令来查询这些参数。 Usage: php [options] [-f] file [args...]php [options] -r code [args...]php [options] [-- args...]-s Display colour syntax highlighted source.-w Display source with stripped comments and whitespace.-f file Parse file.-v Version number-c path|file Look for php.ini file in this directory-a Run interactively-d foo[bar] Define INI entry foo with value bar-e Generate extended information for debugger/profiler-z file Load Zend extension file.-l Syntax check only (lint)-m Show compiled in modules-i PHP information-r code Run PHP code without using script tags ?..?-h This helpargs... Arguments passed to script. Use -- args when first argument starts with - or script is read from stdin CLI SAPI 模块有以下三种不同的方法来获取您要运行的 PHP 代码 在windows环境下尽量使用双引号 在linux环境下则尽量使用单引号来完成。 让 PHP 运行指定文件。 php my_script.phpphp -f my_script.php 以上两种方法使用或不使用 -f 参数都能够运行给定的 my_script.php 文件。您可以选择任何文件来运行您指定的 PHP 脚本并非必须要以 .php 为扩展名它们可以有任意的文件名和扩展名。 在命令行直接运行 PHP 代码。 php -r print_r(get_defined_constants()); 在使用这种方法时请您注意外壳变量的替代及引号的使用。 注: 请仔细阅读以上范例在运行代码时没有开始和结束的标记符加上 -r 参数后这些标记符是不需要的加上它们会导致语法错误。 通过标准输入stdin提供需要运行的 PHP 代码。 以上用法给我们提供了非常强大的功能使得我们可以如下范例所示动态地生成 PHP 代码并通过命令行运行这些代码 $ some_application | some_filter | php | sort -u final_output.txt 以上三种运行代码的方法不能同时使用。 和所有的外壳应用程序一样PHP 的二进制文件php.exe 文件及其运行的 PHP 脚本能够接受一系列的参数。PHP 没有限制传送给脚本程序的参数的个数外壳程序对命令行的字符数有限制但您通常都不会超过该限制。传递给您脚本的参数可在全局变量 $argv 中获取。该数组中下标为零的成员为脚本的名称当 PHP 代码来自标准输入获直接用 -r 参数以命令行方式运行时该名称为“-”。另外全局变量 $argc 存有 $argv 数组中成员变量的个数而非传送给脚本程序的参数的个数。 只要您传送给您脚本的参数不是以 - 符号开头您就无需过多的注意什么。向您的脚本传送以 - 开头的参数会导致错误因为 PHP 会认为应该由它自身来处理这些参数。您可以用参数列表分隔符 -- 来解决这个问题。在 PHP 解析完参数后该符号后所有的参数将会被原样传送给您的脚本程序。 # 以下命令将不会运行 PHP 代码而只显示 PHP 命令行模式的使用说明
$ php -r var_dump($argv); -h
Usage: php [options] [-f] file [args...]
[...]# 以下命令将会把“-h”参数传送给脚本程序PHP 不会显示命令行模式的使用说明
$ php -r var_dump($argv); -- -h
array(2) {[0]string(1) -[1]string(2) -h
} 除此之外我们还有另一个方法将 PHP 用于外壳脚本。您可以在写一个脚本并在第一行以 #!/usr/bin/php 开头在其后加上以 PHP 开始和结尾标记符包含的正常的 PHP 代码然后为该文件设置正确的运行属性。该方法可以使得该文件能够像外壳脚本或 PERL 脚本一样被直接执行。 #!/usr/bin/php?php var_dump($argv);? 假设改文件名为 test 并被放置在当前目录下我们可以做如下操作 $ chmod 755 test
$ ./test -h -- foo
array(4) {[0]string(6) ./test[1]string(2) -h[2]string(2) --[3]string(3) foo
} 正如您所看到的在您向该脚本传送以 - 开头的参数时脚本仍然能够正常运行。 ------------------------------------------------------------------------------命令选项----------------------------------------------------- 表格 23-3. 命令行选项 选项名称描 述-s 显示有语法高亮色彩的源文件。 该参数使用内建机制来解析文件并为其生成一个 HTML 高亮版本并将结果写到标准输出。请注意该过程所做的只是生成了一个 code [...] /code 的 HTML 标记符块并不包含任何的 HTML 头。 注: 该选项不能和 -r 参数同时使用。 -w 显示除去了注释和空格的源代码。 注: 该选项不能和 -r 参数同时使用。 -f 解析并运行给定的文件名。该参数为可选参数且可以不加仅指明需要运行的文件名即可。 -v 将 PHP、PHP SAPI 及 Zend 的版本信息写入的标准输出。例如 $ php -v
PHP 4.3.0-dev (cli), Copyright (c) 1997-2002 The PHP Group
Zend Engine v1.3.0, Copyright (c) 1998-2002 Zend Technologies -c 用该参数您可以指定一个放置 php.ini 文件的目录或者直接指定一个自定义的 INI 文件其文件名可以不是 php.ini。例如 $ php -c /custom/directory/ my_script.php$ php -c /custom/directory/custom-file.ini my_script.php -a 交互地运行 PHP。 -d 用该参数可以自行设置 php.ini 文件中设置变量的值其语法为 -d configuration_directive[value] 范例 # Ommiting the value part will set the given configuration directive to 1
$ php -d max_execution_time -r $foo ini_get(max_execution_time); var_dump($foo);
string(1) 1# Passing an empty value part will set the configuration directive to
php -d max_execution_time -r $foo ini_get(max_execution_time); var_dump($foo);
string(0) # The configuration directive will be set to anything passed after the character
$ php -d max_execution_time20 -r $foo ini_get(max_execution_time); var_dump($foo);
string(2) 20
$ php -d max_execution_timedoesntmakesense -r $foo ini_get(max_execution_time); var_dump($foo);
string(15) doesntmakesense -e 为调试器等生成扩展信息。 -z 加载 Zend 扩展库。如果仅给定一个文件名PHP 将试图从您系统扩展库的默认路径在 Linux 系统下该路径通常由 /etc/ld.so.conf 指定加载该扩展库。如果您用一个绝对路径指定文件名则系统的扩展库默认路径将不会被使用。如果用相对路径指定的文件名PHP 则仅试图加载相对于当前目录的扩展库。 -l 该参数提供了对指定 PHP 代码进行语法检查的方便的方法。如果成功则向标准输出写入 No syntax errors detected in filename 字符串并且外壳返回值为 0。如果失败则 Errors parsing filename 以及内部解析器错误信息会一起被写入到标准输出同时外壳返回值将别设置为 255。 该参数将无法检查致命错误如未定义函数如果您希望检测之名错误请使用 -f 参数。 注: 该参数不能和 -r 一同使用。 -m 使用该参数PHP 将打印出内置以及已加载的 PHP 及 Zend 模块 $ php -m
[PHP Modules]
xml
tokenizer
standard
session
posix
pcre
overload
mysql
mbstring
ctype[Zend Modules] -i该命令行参数会调用 phpinfo() 函数并打印出结果。如果 PHP 没有正常工作我们建议您执行 php -i 命令来查看在信息表格之前或者对应的地方是否有任何错误信息输出。请注意输出的内容为 HTML 格式因此输出的信息篇幅较大。-r 使用该参数可以在命令行运行 PHP 代码。您无需加上 PHP 的起始和结束标识符?php 和 ?否则将会导致语法解析错误。 注: 使用这种形式的 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或者发邮件到 phpdoclists.php.net。 当您试图将外壳的环境变量引入到马或者用反斜线来转义字符时也可能碰到各种各样的问题请您在使用时注意 注: -r 在 CLI SAPI 中有效在 CGI SAPI 中无效。 -h使用该参数您可以得到完整的命令行参数的列表及这些参数作用的简单描述。 PHP 的命令行模式能使得 PHP 脚本能完全独立于 WEB 服务器单独运行。如果您使用 Unix 系统您需要在您的 PHP 脚本的最前面加上一行特殊的代码使得它能够被执行这样系统就能知道用什么样的程序要运行该脚本。在 Windows 平台下您可以将 php.exe 和 .php 文件的双击属性相关联您也可以编写一个批处理文件来用 PHP 执行脚本。为 Unix 系统增加的第一行代码不会影响该脚本在 Windows 下的运行因此您也可以用该方法编写跨平台的脚本程序。以下是一个简单的PHP 命令行程序的范例。 例子 23-1. 试图以命令行方式运行的 PHP 脚本script.php #!/usr/bin/php?phpif ($argc ! 2 || in_array($argv[1], array(--help, -help, -h, -?))) {?This is a command line PHP script with one option. Usage: ?php echo $argv[0]; ? option option can be some word you would like to print out. With the --help, -help, -h, or -? options, you can get this help.?php} else { echo $argv[1];}? 在以上脚本中我们用第一行特殊的代码来指明该文件应该由 PHP 来执行。我们在这里使用 CLI 的版本因此不会有 HTTP 头信息输出。在您用 PHP 编写命令行应用程序时您可以使用两个参数$argc 和 $argv。前面一个的值是比参数个数大 1 的整数运行的脚本本身的名称也被当作一个参数。第二个时包含有参数的数组其第一个元素为脚本的名称下标为数字 0$argv[0]。 在以上程序中我们检查了参数的个数是大于 1 个还是小于 1 个。即时参数是 --help、-help、-h 或 -?我们仍然打印出帮助信息并同时动态输出脚本的名称。如果还收到了其它参数我们也把它们显示出来。 如果您希望在 Unix 下运行以上脚本您需要使得它成为可执行脚本然后简单的运行 script.php echothis 或 script.php -h。在 Windows 下您可以为此编写一个批处理文件 c:\php\cli\php.exe script.php %1 %2 %3 %4 转载于:https://www.cnblogs.com/lvchenfeng/p/5206138.html