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

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

一、使用$argv or $argc参数接收

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

以下是测试的结果

二、使用getopt函数(推荐使用这种方法)

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

三、提示用户输入

<?php
/**
 * 提示用户输入,类似Python
 */
fwrite(STDOUT,‘please input:‘);
echo ‘your input is:‘.fgets(STDIN);

用户的输入不能为空

<?php
/**
 * 提示用户输入,类似Python
 */

$fs = true;

do{
    if($fs){
        fwrite(STDOUT,‘请输入您的博客名:‘);
        $fs = false;
    }else{
        fwrite(STDOUT,‘抱歉,博客名不能为空,请重新输入您的博客名:‘);
    }

$name = trim(fgets(STDIN));

}while(!$name);

echo ‘您输入的信息是:‘.$name."\r\n";

原文地址:https://www.cnblogs.com/liliuguang/p/10652855.html

时间: 2024-07-31 04:45:41

PHP命令行脚本接收传入参数的三种方式的相关文章

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

三种常用的方式如果在运行python脚本时需要传入一些参数,例如gpus与batch_size,可以使用如下三种方式. python script.py 0,1,2 10python script.py -gpus=0,1,2 --batch-size=10python script.py -gpus=0,1,2 --batch_size=10123这三种格式对应不同的参数解析方式,分别为sys.argv, argparse, tf.app.run, 前两者是python自带的功能,后者是ten

[PHP][linux] 命令行脚本接收传入参数的

第一种 :用{ $argv }接受参数 第二种 : getopt() 第三种:

HTML中接收URL参数的三种方式

1.使用 window.location.search 来取得后面的参数 // param参数的名 function getParameter(param){var query = window.location.search;var iLen = param.length;var iStart = query.indexOf(param);if (iStart == -1) return "";iStart += iLen + 1;var iEnd = query.indexOf(&

spring接收ajax参数的几种方式

参考网址:spring接收ajax参数的几种方法 @ModelAttribute 注解 使用@ModelAttribute这个方法可以直接将参数映射成pojo对象,我不加@ModelAttribute注解,直接接收pojo对象,同样能够接收到参数 前端ajax请求 <script type="text/javascript"> $(function(){ $.ajax({ type:"post", url:"http://localhost:8

估计高斯混合模型参数的三种方式

对于如下的两类别的高斯混合模型 \[ \pi\cdot N(\mu_1,\sigma_1^2)+(1-\pi)\cdot N(\mu_2,\sigma_2^2) \] 参数为\(\theta = (\pi, \mu_1,\mu_2,\sigma_1,\sigma_2)\).至今,我了解到有三种方式来估计这五个参数.这三种方式分别为梯度下降法.EM算法和Gibbs采样,而且这三种算法并非毫不相关.EM算法其实是简化梯度下降法中对于对数似然的计算,而Gibbs采样跟EM算法区别在于前者采样后者求最大

Struts2中Action接收参数的三种方式

Struts2中Action接收参数的方法主要有以下三种:1.使用Action的属性接收参数:    a.定义:在Action类中定义属性,创建get和set方法:    b.接收:通过属性接收参数,如:userName:    c.发送:使用属性名传递参数,如:user1!add?userName=zhangsan:2.使用DomainModel接收参数:    a.定义:定义Model类,在Action中定义Model类的对象(不需要new),创建该对象的get和set方法:    b.接收

mybatis中传入参数的几种方式

第一种: Dao层的方法 Public User selectUser(String name,String password); 对应的Mapper.xm <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_name = #{0} and user_password=#{1} </select> 第二种: 该方法采用M

@Param注解在mybatis中的使用以及传入参数的几种方式(转)

第一种: Dao层的方法 <span style="font-size:12px;">Public User selectUser(String name,String password);</span> 对应的Mapper.xm <select id="selectUser" resultMap="BaseResultMap"> select * from user_user_t where user_nam

springmvc参数类型转换三种方式

SpringMVC绑定参数之类型转换有三种方式:     1. 实体类中加日期格式化注解      @DateTimeFormat(pattern="yyyy-MM-dd hh:MM") private Date creationTime;     2.在Controller类的方法中加入一段代码 /** * 在controller层中加入一段数据绑定代码 * @param webDataBinder */ @InitBinder public void initBinder(WebD