通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务。这就涉及到在shell命令下如何给php传参的问题,通常有三种方式传参。
一、使用$argv or $argc参数接收

复制代码代码如下:

<?php
/**
 * 使用 $argc $argv 接受参数
 */
 
echo "接收到{$argc}个参数";
print_r($argv);

执行

复制代码代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php
接收到1个参数Array
(
    [0] => test.php
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php a b c d
接收到5个参数Array
(
    [0] => test.php
    [1] => a
    [2] => b
    [3] => c
    [4] => d
)
[root@DELL113 lee]#

二、使用getopt函数

复制代码代码如下:

<?php
/**
 * 使用 getopt函数
 */
 
$param_arr = getopt('a:b:');
print_r($param_arr);

执行

复制代码代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345
Array
(
    [a] => 345
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3
Array
(
    [a] => 345
    [b] => 12q3
)
[root@DELL113 lee]# /usr/local/php/bin/php test.php -a 345 -b 12q3 -e 3322ff
Array
(
    [a] => 345
    [b] => 12q3
)

三、提示用户输入

复制代码代码如下:

<?php
/**
 * 提示用户输入,类似Python
 */
fwrite(STDOUT,'请输入您的博客名:');
echo '您输入的信息是:'.fgets(STDIN);

执行

复制代码代码如下:

[root@DELL113 lee]# /usr/local/php/bin/php test.php

请输入您的博客名:脚本之家 www.jb51.net
您输入的信息是:脚本之家 www.jb51.net
你也可以这么干,不让用户输入空信息

复制代码代码如下:

<?php
/**
 * 提示用户输入,类似Python
 */
 
$fs = true;
 
do{
oif($fs){
fwrite(STDOUT,'请输入您的博客名:');
$fs = false;
}else{
fwrite(STDOUT,'抱歉,博客名不能为空,请重新输入您的博客名:');
}
 
$name = trim(fgets(STDIN));
 
}while(!$name);
 
echo '您输入的信息是:'.$name."\r\n";

php PHP命令行脚本接收传入参数的三种方式相关推荐

  1. sql2008安装时提示参数不能为空_PHP命令行脚本接收传入参数的三种方式

    通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务.这就涉及到在shell命令下如何给php传参的问题,通常 ...

  2. PHP命令行脚本接收传入参数的三种方式

    通常PHP都做http方式请求了,可以使用GET or POST方式接收参数,有些时候需要在shell命令下把PHP当作脚本执行,比如定时任务.这就涉及到在shell命令下如何给php传参的问题,通常 ...

  3. 命令行运行Python脚本时传入参数的三种方式

    三种常用的方式 如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. python script.py 0,1,2 10 python script ...

  4. mybatis中传入参数的几种方式

    第一种: Dao层的方法 Public User selectUser(String name,String password); 对应的Mapper.xm <select id="s ...

  5. Mybatis传递参数的三种方式

    第一种: Dao层使用@Param注解的方法 VersionBox getVersionByVersionNumAndVersionType(@Param("versionNum" ...

  6. php命令行传参数,php命令行脚本接收传参数的介绍

    下面小编就为大家带来一篇php获取'/'传参的值简单方法.小编觉得挺不错的,现在就分享给大家,也给大家做个参考.一起跟随小编过来看看吧 通过输出$GLOBALS可以看到'/'后的参数都存在于$_SER ...

  7. springMVC接收请求参数的几种方式

    1.  用注解@RequestParam绑定请求参数 用注解@RequestParam绑定请求参数a到变量a,当请求参数a不存在时会有异常发生,可以通过设置属性required=false解决,例如: ...

  8. mybatis 传递参数的三种方式

    mybatis 框架的主要工作是数据层, 侧重于与数据库打交道的sql语句的编写,对sql也要求比较熟练. mybatis 传递参数的方式主要有三种: 1. 多个参数的传递方式    形式如:    ...

  9. react --- 隔代传递参数的三种方式

    组件跨层级通信 - Context 上下文提供一种不需要每层设置props就能跨多级组件传递数据的方式 方式1 Provider提供值 Consumer来消费传递的值 import React fro ...

  10. struts2获取请求参数的三种方式及传递给JSP参数的方式

    接上一篇文章 package test;import com.opensymphony.xwork2.ActionSupport; import javax.servlet.http.*; impor ...

最新文章

  1. Linux驱动无硬件设备,Linux设备驱动与硬件通信
  2. Microsoft SharePoint Server 2016 部署文档(2)
  3. OpenCV 3.1.0中的Mat对象使用
  4. mysql router安装教程_MySQL Router 安装与配置
  5. WebService中使用自定义类的解决方法(5种)
  6. 基于PSO算法的带时间窗的车辆路径问题的仿真
  7. 使用gdb进行程序调试1-在GDB中运行程序
  8. powershell 停止正在运行的用户应用
  9. 微软征询“Xbox支付方式”,选项包括比特币支付
  10. BIOS中的UEFI和Legacy启动模式
  11. Adobe Flash 离线安装包下载
  12. css鼠标移上去向上移动,css3鼠标移动图片上移效果
  13. BXP无盘网络方案及设备选用(转)
  14. 华三OSPF多区域配置实例
  15. 极坐标梯度公式_一般坐标系下的梯度散度旋度及拉普拉斯形式
  16. SDN南向接口和北向接口
  17. html完整语句,html语句
  18. 奥马电器赵国栋转让股份兜底钱包金融展期项目,奥马获国资输血
  19. csh shell_06145.16.1同一OS用户并行Shell脚本中kinit不同的Principal串掉问题分析
  20. 【java笔记-006】【uni-app】当前运行的基座不包含原生插件[xxx],请在manifest中配置该插件,重新制作包括该原生插件的自定义运行基座

热门文章

  1. Windows平台上实现P2P服务(一)
  2. 《数值分析(原书第2版)》—— 1.5 不需要导数的根求解
  3. c#中两种不同的存储过程调用与比较
  4. DataGridView分页
  5. 17 行为型模式-----迭代器模式
  6. 代码走查与代码审查区别
  7. sql server 2000里ldf损坏,只有mdf的恢复
  8. Linux DRM 理解
  9. 统计计算机考试题,销售统计表计算机windows一级最新考试试题
  10. Android 四大组件学习之ContentProvider一