PHP的命令行脚本开发
程序员文章站
2022-04-16 17:54:19
...
PHP的命令行脚本开发
PHP能做什么
PHP官方文档不要脸的说PHP能做任何事
,这和业界广为流传气死其他程序员不偿命的PHP是最好的语言
可真是遥呼相应。
PHP主要用于以下三个领域
(1) 服务端脚本
这是最主要的领域,PHP 解析器(CGI 或者服务器模块)和web服务器(如Apache、Nginx)搭配使用。
(2) 命令行脚本
这种方式,仅仅只需要 PHP 解析器来执行。联想一下Python
就会明白。
(3) 桌面应用程序
通过一些扩展库如PHP-GTK
可以使用PHP编写桌面应用程序。不过这得多无聊才会去干这事。
命令行开发
以下操作是在Mac下进行
进入php
目录,或将php
目录放到环境变量中。(Mac忽略这一步)
查看PHP引擎
php -v
# 输出
PHP 5.5.27 (cli) (built: Jul 23 2015 00:21:59)
Copyright (c) 1997-2015 The PHP Group
Zend Engine v2.5.0, Copyright (c) 1998-2015 Zend Technologies
查看使用帮助
php -h
# 输出
Usage: php [options] [-f] [--] [args...]
php [options] -r [--] [args...]
php [options] [-B ] -R [-E ] [--] [args...]
php [options] [-B ] -F [-E ] [--] [args...]
php [options] -S : [-t docroot]
php [options] -- [args...]
php [options] -a
-a Run as interactive shell
-c | Look for php.ini file in this directory
-n No php.ini file will be used
-d foo[=bar] Define INI entry foo with value 'bar'
-e Generate extended information for debugger/profiler
-f Parse and execute .
-h This help
-i PHP information
-l Syntax check only (lint)
-m Show compiled in modules
-r Run PHP without using script tags
-B Run PHP before processing input lines
-R Run PHP for every input line
-F Parse and execute for every input line
-E Run PHP after processing all input lines
-H Hide any passed arguments from external tools.
-S : Run with built-in web server.
-t Specify document root for built-in web server.
-s Output HTML syntax highlighted source.
-v Version number
-w Output source with stripped comments and whitespace.
-z Load Zend extension .
args... Arguments passed to script. Use -- args when first argument
starts with - or script is read from stdin
--ini Show configuration file names
--rf Show information about function .
--rc Show information about class .
--re Show information about extension .
--rz Show information about Zend extension .
--ri Show configuration for extension .
执行一个PHP文件
php [-f] xxx.php
可以传参数
php [-f] xxx.php 'hello' 'world' 2015
传递给脚本的参数可在全局变量
$argv
中获取,全局变量$argc
存有$argv
数组中成员变量的个数(而非传送给脚本程序的参数的个数)
001.php
执行001.php
php 001.php 'hello world' 2015
输出
int(3)
array(3) {
[0]=>
string(7) 001.php
[1]=>
string(11) hello world
[2]=>
string(4) 2015
}
也可以直接运行 PHP 代码
php -r 'echo Hello World
;'
#输出
Hello World