zoukankan      html  css  js  c++  java
  • 如何命令行下运行脚本及传递参数

    在命令行下运行脚本:window下,假设PHP安装目录为c:program filesphp5,那么使用命令窗口进入到该路径下,敲入php hello.php回车,则会执行当前路径下的hello.php文件,如果要指向其他路径下php文件,可以在php 路径/hello.php ,这种形式称为CLI模式,我们平时通过浏览器看到的那种称为CGI模式,至于传递参数,php文件在cli模式下,直接通过在文件名称后面接参数,多个参数中间用空格隔开,在php文件里面是通过两个变量来获取参数的,一个是$argv,一个是$argc,前者是传递参数的数组,默认第一个为php文件的名称;后者为$argv的数组个数。
    Linux下,一般程序安装都会安装在/usr/bin/php下面,可以通过man php查看一下,如果有信息说明可以使用,使用方法类似于window下。如果前面这步成立,那么你可以直接 php php文件 来运行php文件,如果man php没有信息,则说明当前php执行文件没有在环境路径里面,可以修改环境路径包含php路径,也可以类似于window进入php路径,在执行 php php文件。其他类似于window下。

    PHP获取参数的三种方法:

    方法一 使用$argc $argv

    1. <?php  
    2.   
    3. if ($argc > 1){  
    4.   
    5. print_r($argv);  
    6.   
    7. }   


    在命令行下运行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456

    运行结果:

    1. # /usr/local/php/bin/php ./getopt.php -f 123 -g 456  
    2.   
    3. Array  
    4.   
    5. (  
    6.   
    7. [0] => ./getopt.php  
    8.   
    9. [1] => -f  
    10.   
    11. [2] => 123  
    12.   
    13. [3] => -g  
    14.   
    15. [4] => 456  
    16.   
    17. )  

    方法二 使用getopt函数()

    getopt (string $options [, array$longopts ] );

    参数解析:

    options

    该字符串中的每个字符会被当做选项字符,匹配传入脚本的选项以单个连字符(-)开头。比如,一个选项字符串 "x" 识别了一个选项 -x只允许 a-z、A-Z 和 0-9。
    longopts
    选项数组。此数组中的每个元素会被作为选项字符串,匹配了以两个连字符(--)传入到脚本的选项。例如,长选项元素 "opt" 识别了一个选项 --opt

    options 可能包含了以下元素:

    • 单独的字符(不接受值)
    • 后面跟随冒号的字符(此选项需要值)
    • 后面跟随两个冒号的字符(此选项的值可选)
    选项的值是字符串后的第一个参数。它不介意值之前是否有空格。
    1. $options = "f:g:";  
    2.   
    3. $opts = getopt$options );  
    4.   
    5. print_r($opts);   
    在命令行下运行 /usr/local/php/bin/php ./getopt.php -f 123 -g 456

    运行结果:

    1. Array  
    2.   
    3. (  
    4.   
    5. [f] => 123  
    6.   
    7. [g] => 456  
    8.   
    9. )  

    方法三 提示用户输入,然后获取输入的参数。有点像C语言

    1. fwrite(STDOUT, "Enter your name: ");  
    2.   
    3. $name = trim(fgets(STDIN));  
    4.   
    5. fwrite(STDOUT, "Hello, $name!");   

    stdout -- 标准输出设备 (printf("..")) 同 stdout。
    stderr -- 标准错误输出设备
    两者默认向屏幕输出。
    但如果用转向标准输出到磁盘文件,则可看出两者区别。stdout输出到磁盘文件,stderr在屏幕。

    在命令行下运行 /usr/local/php/bin/php ./getopt.php

    运行结果

    1. Enter your name: zhang //(zhang 为用户输入)  
    2.   
    3. Hello, zhang! 
  • 相关阅读:
    【JDK】JDK源码分析-Semaphore
    【JDK】JDK源码分析-CyclicBarrier
    【JDK】JDK源码分析-CountDownLatch
    【JDK】JDK源码分析-ReentrantLock
    【JDK】JDK源码分析-AbstractQueuedSynchronizer(3)
    【JDK】JDK源码分析-AbstractQueuedSynchronizer(2)
    【JDK】JDK源码分析-AbstractQueuedSynchronizer(1)
    如何判断无线和网线是否在同一网段?
    Android Studio+SVN配置生成apk文件
    Java冒泡排序
  • 原文地址:https://www.cnblogs.com/wepe/p/7424511.html
Copyright © 2011-2022 走看看