• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

PHP命令行执行实例

php 搞代码 4年前 (2022-01-22) 33次浏览 已收录 0个评论

本文主要和大家分享以下是 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 help args...          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.php php -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);' -hUsage: php [options] [-f] <file> [args...][...] # 以下命令将会把“-h”参数传送给脚本程序,PHP 不会显示命令行模式的使用说明:$ php -r "var_dump($argv);" -- -harray(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 -- fooarray(4) {  [0]=>  string(6) "./test"  [1]=>  string(2) "-h"  [2]=>  string(2) "--"  [3]=>  string(3) "foo"}

正如您所看到的,在您向该脚本传送以 – 开头的参数时,脚本仍然能够正常运行。

——————————————————————————命令选项—————————————————–

表格 23-3. 命令行选项

选项名称

描 述

-s

显示有语法高亮色彩的源文件。

该参数使用内建机制来解析文件并为其生成一个 HTML 高亮版本并将结果写到标准输出。请注意该过程所做的只是生成了一个 <code> […] </code> 的 HTML 标记符块,并不包含任何的 HTML

本&文来源gaodai^.ma#com搞#代!码网

搞gaodaima代码 头。

注: 该选项不能和 -r 参数同时使用。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:PHP命令行执行实例
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址