命令行下运行php脚本

最近在维护一个网站后台,开发语言是php,看来要好好学一学这门语言了。 为了做一些简单的练习,都要开启webserver,有些大材小用,所以,就想直接在命令行下运行php脚本。 而且,既然php是一种脚本语言,一些日常用的脚本工具也可以直接用它来实现,权当练习了。 从网上搜了一些资料,整理如下:

注:以下示例运行于Mac OSX 10.10下。

基本运行方式

1. 让 PHP 运行指定文件。

     php my_script.php
     php -f  'my_script.php'

     以上两种方法(使用或不使用 -f 参数)都能够运行给定的 my_script.php 文件。
     指定的 PHP 脚本并非必须要以 .php 为扩展名,它们可以有任意的文件名和扩展名。

2. 在命令行直接运行 PHP 代码。

     php -r 'print_r(get_defined_constants());'

3. 通过标准输入(stdin)提供需要运行的 PHP 代码。
 
     $ some_application | some_filter | php | sort -u >final_output.txt


向脚本传送参数

     传递给脚本的参数可在全局变量 $argv 中获取。该数组中下标为零的成员为脚本的名称(当 PHP代码来自标准输入获直接用 -r 参数以命令行方式运行时,该名称为“-”)。另外,全局变量 $argc 存有 $argv 数组中成员变量的个数。


     1. php -r 'var_dump($argv);'
          输出:
           array(1) {
                 [0] =>
                 string(1) "-"
          }

     2. php -r 'var_dump($argv);’ h
          输出:
           array(1) {
                 [0] =>
                 string(1) "-"
                 [1] =>
                 string(1) "h"
          }

     3. php -r 'var_dump($argv);' -- -h
          输出:
           array(2) {
                 [0] =>
                 string(1) "-"
                 [1] =>
                 string(2) "-h"
          }

     4. php -r 'var_dump($argv);' -h
          输出: (该命令将不会运行 PHP 代码,而只显示 PHP 命令行模式的使用说明)
           Usage: php [options] [-f] <file> [--] [args...]
                  php [options] -r <code> [--] [args...]

     请注意第三个例子和第四个例子的区别:
     向脚本传送以 - 开头的参数会导致错误,因为 PHP 会认为应该由它自身来处理这些参数(例4)。可以用参数列表分隔符 -- 来解决这个问题(例3)。在 PHP 解析完参数后,该符号后所有的参数将会被原样传送给php脚本程序。

制作可执行的php脚本

在 .php 文件的开头加上 #!/usr/bin/php ,并给该文件加上可执行属性。

例如:
#!/usr/bin/php
<?php
     var_dump($argv);
?>

保存改文件为test.php,  chmod +x test.php , 在Terminal下运行: ./test.php -a -v 
输出:
array(3) {
  [0]=>
  string(11) "./test.php"
  [1]=>
  string(2) "-a"
  [2]=>
  string(2) "-v"
}

### 如何在 Linux 命令行运行项目脚本 #### Python 脚本的执行 对于 Python 项目脚本,在 Linux 环境下的执行涉及几个基本步骤。Python 解释器通常位于 `/usr/bin/python3` 或者通过环境变量 PATH 可访问的位置[^1]。 为了创建并运行一个简单的 Python 脚本,可以按照如下操作: 假设有一个名为 `example.py` 的文件,其内容为打印 "Hello, world!" 到控制台,则该文件的内容应像这样编写: ```python print("Hello, world!") ``` 要使此脚本可执行,需赋予它相应的权限,并指定解释器路径。这可以通过修改文件顶部添加 Shebang 行来实现,例如: ```bash #!/usr/bin/env python3 ``` 之后更新文件权限以便能够被执行: ```bash chmod +x example.py ``` 最后可以直接调用这个脚本来查看输出效果: ```bash ./example.php ``` 请注意这里应该是 `.py` 扩展名而不是 `.php`,上述命令中的错误仅作为示例展示如何设置权限和直接执行带有 shebang 的脚本。 #### PHP 脚本的执行 当涉及到 PHP 项目时,同样可以在不依赖 Web 浏览器的情况下于 Linux 终端内完成任务。如果目标是执行某个特定位置上的 PHP 文件(比如 `/var/www/html/infophp.php`),那么只需简单地利用 php-cli 来解析并处理给定的源码即可[^2]。 具体来说就是打开终端窗口,键入下面这条指令: ```bash php /var/www/html/infophp.php ``` 另外还支持向 PHP CLI 应用程序传递额外的数据或配置项,这些都可以借助 `-f`, `-a`, `-c` 参数以及其他更多选项来进行定制化调整[^3]。 综上所述,无论是哪种类型的编程语言编写的项目脚本,在 Linux 平台上都能方便快捷地被启动起来用于测试或是部署目的。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值