- 浏览: 609854 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
kangh:
转载的也拿出来 都不试一下 完全错误
Nginx+ffmpeg的HLS开源服务器搭建配置及开发详解 -
wangtxlz:
#cd builders/cmake#cmake .系统提示命 ...
crtmpserver流媒体服务器的介绍与搭建 -
hnraysir:
支持支持支持
手机Android音视频采集与直播推送,实现单兵、移动监控类应用 -
wuent:
把web服务器和php框架绑定到一起?真不建议这样。。。
Swoole(PHP高级Web开发框架) -
wuent:
有更详细的性能比较吗?php,python,java
PHP中的(伪)多线程与多进程
以下是 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);' -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 |
假设改文件名为 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 头。
|
|||
-w |
显示除去了注释和空格的源代码。
|
|||
-f |
解析并运行给定的文件名。该参数为可选参数且可以不加,仅指明需要运行的文件名即可。 |
|||
-v |
将 PHP、PHP SAPI 及 Zend 的版本信息写入的标准输出。例如:
|
|||
-c |
用该参数,您可以指定一个放置 php.ini 文件的目录,或者直接指定一个自定义的 INI 文件,其文件名可以不是 php.ini。例如:
|
|||
-a |
交互地运行 PHP。 |
|||
-d |
用该参数可以自行设置 php.ini 文件中设置变量的值,其语法为:
范例:
|
|||
-e |
为调试器等生成扩展信息。 |
|||
-z |
加载 Zend 扩展库。如果仅给定一个文件名,PHP 将试图从您系统扩展库的默认路径(在 Linux 系统下,该路径通常由 /etc/ld.so.conf 指定)加载该扩展库。如果您用一个绝对路径指定文件名,则系统的扩展库默认路径将不会被使用。如果用相对路径指定的文件名,PHP 则仅试图加载相对于当前目录的扩展库。 |
|||
-l |
该参数提供了对指定 PHP 代码进行语法检查的方便的方法。如果成功,则向标准输出写入 No syntax errors detected in <filename> 字符串,并且外壳返回值为 0。如果失败,则 Errors parsing <filename> 以及内部解析器错误信息会一起被写入到标准输出,同时外壳返回值将别设置为 255。 该参数将无法检查致命错误(如未定义函数),如果您希望检测之名错误,请使用 -f 参数。
|
|||
-m |
使用该参数,PHP 将打印出内置以及已加载的 PHP 及 Zend 模块:
|
|||
-i | 该命令行参数会调用 phpinfo() 函数,并打印出结果。如果 PHP 没有正常工作,我们建议您执行 php -i 命令来查看在信息表格之前或者对应的地方是否有任何错误信息输出。请注意输出的内容为 HTML 格式,因此输出的信息篇幅较大。 | |||
-r |
使用该参数可以在命令行运行 PHP 代码。您无需加上 PHP 的起始和结束标识符(<?php 和 ?>),否则将会导致语法解析错误。
|
|||
-h | 使用该参数,您可以得到完整的命令行参数的列表及这些参数作用的简单描述。 |
PHP 的命令行模式能使得 PHP 脚本能完全独立于 WEB 服务器单独运行。如果您使用 Unix 系统,您需要在您的 PHP 脚本的最前面加上一行特殊的代码,使得它能够被执行,这样系统就能知道用什么样的程序要运行该脚本。在 Windows 平台下您可以将 php.exe 和 .php 文件的双击属性相关联,您也可以编写一个批处理文件来用 PHP 执行脚本。为 Unix 系统增加的第一行代码不会影响该脚本在 Windows 下的运行,因此您也可以用该方法编写跨平台的脚本程序。以下是一个简单的PHP 命令行程序的范例。
在以上脚本中,我们用第一行特殊的代码来指明该文件应该由 PHP 来执行。我们在这里使用 CLI 的版本,因此不会有 HTTP 头信息输出。在您用 PHP 编写命令行应用程序时,您可以使用两个参数:$argc 和 $argv。前面一个的值是比参数个数大 1 的整数(运行的脚本本身的名称也被当作一个参数)。第二个时包含有参数的数组,其第一个元素为脚本的名称,下标为数字 0($argv[0])。
在以上程序中我们检查了参数的个数是大于 1 个还是小于 1 个。即时参数是 --help、-help、-h 或 -?,我们仍然打印出帮助信息,并同时动态输出脚本的名称。如果还收到了其它参数,我们也把它们显示出来。
如果您希望在 Unix 下运行以上脚本,您需要使得它成为可执行脚本,然后简单的运行 script.php echothis 或 script.php -h。在 Windows 下,您可以为此编写一个批处理文件:
发表评论
-
nginx、php-fpm默认配置与性能–TCP socket还是unix domain socket
2015-04-02 11:14 1472前几天看到一篇博客,提到php所在服务器在大并发情况下,频 ... -
使用socket方式连接Nginx优化php-fpm性能
2015-04-01 13:49 0Nginx连接fastcgi的方式有 ... -
PHP中include和require的区别详解
2015-04-01 08:32 01、概要 require()语句的性能与includ ... -
PHP 中cookie 和 session 的分析
2015-03-31 12:33 0HP 中cookie 和session 的分析 ... -
php 经典的算法题你懂的
2015-03-31 12:31 0有5个人偷了一堆苹果,准备在第二天分赃。晚上,有一人遛出来, ... -
PHP最常用的2种设计模式工厂模式和单例模式介绍
2015-03-31 12:26 0简单来说,PHP单例模式就是一个功能用一个类来实现,并且在整 ... -
PHP 数据类型
2015-03-31 12:23 0PHP 数据类型 PHP 支持八种原始类型(type)。 ... -
PHP mcrypt启用、加密以及解密过程详解
2015-03-30 11:32 1463Mcrypt扩展库可以实现加密解密功能,就是既能将明文加密, ... -
PHP扩展实现类扩展
2015-03-27 14:08 580在第一篇文章中,我们所开发的扩展是单个函数,本篇文章看一下 ... -
PHP高级工程师的面试题
2015-03-06 10:35 01. 基本知识点 HTTP协议中几个状态码的含义:1x ... -
PHP面试中常见的面试试题与算法例子
2015-03-05 14:14 0下面是四道比较常见的题目,主要考察的是对字符串函数以及文件操 ... -
PHP实现四种常用的排序算法
2015-03-05 14:09 0插入排序(Insertion Sort),选择排序(Sele ... -
用swagger-php/ui做API测试
2015-02-13 09:46 3651功能: 1 swagger-php根据自定义的规则生成API ... -
app后端设计(0)--总目录
2015-01-23 18:03 0做了3年app相关的系统架构,api设计,先后在3个创业公司中 ... -
PHP中eAccelerator、memcached、xcache、APC 4个加速、缓存扩展的区别
2015-01-23 10:26 917这篇文章主要介绍了PHP ... -
PHP内核探索:zend_parse_parameters函数
2015-01-16 14:14 967最简单的获取函数调用者传递过来的参数便是使用zend_pars ... -
实战:用C写php扩展(二)
2015-01-16 11:05 999一、前言 在我的上一篇文章“实战:用C写php扩展(一)”里介 ... -
实战:用C写php扩展(一)
2015-01-16 11:04 10191、 前言 首先,确保你的机器安装了apache和php。假 ... -
JavaScript or PHP 来检测移动设备
2014-09-22 10:04 633iPhone & iPod Detection T ... -
YII Framework学习教程-YII的Modules(模块化)
2014-08-27 11:04 753一个相对来说大的项目。如果按照yii生成的 ...
相关推荐
在IT行业中,尤其是在服务器管理和自动化任务执行的场景下,基于命令行执行PHP脚本是非常常见的需求。这篇内容主要探讨了如何在命令行环境下运行带有参数的PHP脚本以及如何获取这些参数。 首先,我们来理解为什么要...
在使用PHP语言进行开发时,命令行执行脚本是一种常见的需求,尤其是在服务器端进行任务调度、数据处理等后台任务时。PHP 提供了一种通过命令行执行脚本的方法,并且可以接收来自命令行的参数。这些参数可以通过特殊...
在php命令行下执行.php文件时,执行环境的工作目录(getcwd( ))是php命令程序(php.exe)所在目录,所以如果想在文件内使用相对路径时,要先切换当前的工作目录才行。 小测试程序: 复制代码 代码如下: <?php ...
本文将深入探讨“命令行形式下的PHP切图工具”,它能够帮助开发者将一张大图片分割成多张小图片,这对于网页设计、图像处理以及响应式布局等应用场景非常实用。 首先,我们来理解一下PHP切图工具的工作原理。这种...
标题中提到的“PHP命令行执行整合pathinfo模拟定时任务实例”,指的是利用PHP语言在命令行环境下模拟定时任务的执行,同时使用pathinfo函数来处理路径信息。pathinfo()函数是PHP内置函数,它用于解析文件路径/URL...
php_cli模式简介 php-cli是php Command Line Interface的简称,如同它名字的意思,就是php在命令行运行的接口,区别于在Web服务器上运行的php环境(php-cgi, isapi等) 也就是说,php不单可以写前台网页,它还可以...
3. **MixCLI**:MixCLI工具,通过改进Phar格式,使得PHP命令行程序能被编译成独立的、无需PHP解释器的可执行文件。它可能利用了一些技术,如将PHP解释器的部分功能嵌入到生成的文件中。 4. **Golang的二进制特性**...
ThinkPHP5(简称TP5)是一个流行的PHP框架,它提供了一种方式来实现这种定时任务,即通过执行shell命令在命令行模式下运行PHP脚本。这个过程涉及到多个知识点,包括TP5的命令行工具、shell命令以及定时任务的设置。 ...
1. PHP命令行执行基础: - PHP脚本执行环境:在命令行下运行PHP脚本,主要使用php.exe。确保php.exe已添加到系统的环境变量中,这样可以在任意命令行窗口调用php命令。 - PHP脚本创建与保存:首先编写包含PHP代码...
总的来说,ShellWrap为PHP开发者提供了一个强大且安全的工具,使得在命令行环境下工作变得更加便捷和高效。通过使用这个库,开发者能够更加专注于业务逻辑,而不必过于关心底层系统的交互细节。同时,由于其良好的...
在PHP的命令行模式下,PHP的可执行程序提供了丰富的命令行参数,使得开发者可以在非Web环境下使用PHP的功能。这些参数包括: 1. `-q`:安静模式。不输出HTTP头信息,这对于将PHP脚本作为后台或批处理任务运行非常...
通过这种方式,即使在没有安装相应PHP扩展的环境下,我们也可以利用Linux的系统工具完成文件压缩。这种方法的灵活性在于它不依赖于特定的PHP扩展,但需要注意的是,它可能受到服务器权限和系统环境的限制。此外,...
5. **持续集成友好**:由于Fink是命令行工具,它可以方便地集成到持续集成/持续部署(CI/CD)流程中,每次代码更新或发布前自动执行检查,确保网站的质量。 在使用 "dantleech-fink-309a6e4" 这个版本之前,确保你的...
在Linux环境下,独立程序执行PHP文件是一个常见的需求,特别是在自动化脚本、服务器管理和持续集成等场景中。这里提到的"snail007-phprunner-0ce9948"可能是一个专为此目的编写的特定工具,允许你在不依赖系统PHP...
在SSH命令行界面执行以下语句: cd /www/server/php/73/src/ext/zip/ /www/server/php/73/bin/phpize ./configure –with-php-config=/www/server/php/73/bin/php-config make && make install echo “extension = ...