在我的博客里有一些文章是和解码或者处理文件有关,其中有些自动化工作比较简单,使用了一些PHP程序来编写处理,这样写起程序来也比较快,因为是纯过程的任务,不想用C#来处理。

写完PHP的脚本程序后,保存在文件了,按大多数人的理解,可能是会做一个WEB服务,然后通过浏览器去访问一下这个文件,它就运行了,其实大可不必如此,因为PHP的程序本身就提供了命令行的运行方式,直接在命令行里运行即可,不必为了运行个文件去搞一个WEB服务在电脑里(对我这种人来说,PHP就是为了写脚本)。

下面介绍几个使用命令行运行PHP的方法,假设你已经配置好了PHP在电脑里的环境变量,已完成了在CMD窗口中直接写php就能直接运行的配置,以WINDOWS为例,在Linux里的用法,一样的。

一、基础的运行PHP文件方法

PHP
php -f php文件

示例:

PHP
<?php
echo 100+200;
echo "\r\n";
echo "这是一个通过命令行直接运行的脚本";
?>

运行结果:

可以看到它已经计算了 100+200 的结果,输出了300,并且按程序要求换了行

二、在运行过程中接收人工输入的内容,然后处理

作为命令行程序,肯定会有需要交互的情况,输入内容,然后处理,这里需要使用三个常量:

STDIN :标准的输入设备
STDOUT: 标准的输出设备
STDERR :标准的错误设备

可以在PHP脚本里使用这三个常量,接受输入,或者显示处理和计算的结果。

下面是示例:

PHP
<?php
//输出一个提示
fwrite(STDOUT, "写一个数字: ");
//接收一个输入
$num = fgets(STDIN);
//处理后输出
fwrite(STDOUT, $num * 100);
?>

运行结果:

可以看到输入100之后,输出10000,乘以了100,说明已经正常接收了输入和计算后输出

三、在命令行中直接带上参数,做为脚本变量直接使用

如果在脚本程序中需要直接带入参数,也是可以的,比如脚本已经写好,根据不同的工作需求带上不同的参数。

这需要使用PHP自带的两个特殊变量:

$argv :命令行中的参数将保存为该变更的数组元素

$argc :它用来保存$argv数组里元素的个数

下面是示例:

PHP
<?php
echo "变量的个数是:" . $argc . "\r\n";
echo "第1个参数:" . $argv[0] . "\r\n";
echo "第2个参数:" . $argv[1] . "\r\n";
echo "第3个参数:" . $argv[2] . "\r\n";
echo "第4个参数:" . $argv[3] . "\r\n";
?>

运行结果:

在PHP中,第一个参数永远是脚本文件本身,所以可以看到给出了正确的变量数,也输出了正确的各个变量,注意,如果变量中有空格,需要引号把有空格的变量内容括起来。

以上的几个内容,已经几乎能满足写脚本程序需要用到的命令行方法,会PHP的话,看到这里应该没啥不理解的了。

如何使用命令行直接运行PHP脚本程序的更多相关文章

  1. 在命令行终端运行 Elisp 脚本

    通常,我们在 Emacs 中运行 Elisp 代码片段,但是也可能需要在命令行终端运行 Elisp 脚本程序.在命令行终端运行 Elisp 脚本需要使用 --script 选项,例如: emacs - ...

  2. 使用命令行方式运行 JMeter 脚本

    For non-interactive testing, you may choose to run JMeter without the GUI. To do so, use the followi ...

  3. sbit命令行中运行scala脚本

    一般sbit编译器采成了scala运行工具.启动sbit命令行,输入console,命令行自动切换到scala编辑器面. scala>:paste 然后手动将XXX.scala中的代码拷贝到界面 ...

  4. 如何在CLI命令行下运行PHP脚本,同时向PHP脚本传递参数?

    <?php/* //命令行输入输出流fwrite(STDOUT,"Enter your name:"); $name = trim(fgets(STDOUT)); fwrit ...

  5. SoapUI命令行方式运行

    http://stackoverflow.com/questions/9220132/soapui-groovy-script-calls-to-command-line SoapUI支持用命令行方式 ...

  6. jmeter命令行模式运行,实时获取压测结果

    jmeter命令行模式运行,实时获取压测结果 jmeter很小,很快,使用方便,可以在界面运行,可以命令行运行.简单介绍下命令行运行的方式: sh jmeter.sh -n -t my-script. ...

  7. FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑

    FFmpeg_Tutorial FFmpeg工具和sdk库的使用demo 一.使用FFmpeg命令行工具和批处理脚本进行简单的音视频文件编辑 1.基本介绍 对于每一个从事音视频技术开发的工程师,想必没 ...

  8. Jmeter使用非 GUI 模式,即命令行模式运行实例讲

    转载:http://www.cnblogs.com/leeboke/p/5238269.html 参考资料:https://girliemangalo.wordpress.com/2009/10/29 ...

  9. 命令行模式运行jmeter,主从方式运行jmeter

    jmeter很小,很快,使用方便,可以在界面运行,可以命令行运行.简单介绍下命令行运行的方式: sh jmeter.sh -n -t my-script.jmx -R 10.6.5.31,10.6.5 ...

  10. pycharm中可以运行的程序,在命令行中运行提示模块不存在的问题

    运行模块(包含main函数的模块),在模块开头添加以下代码,原因是pycharm运行python脚本时,会自动添加以下代码,将当前库加入到系统库目录集合中,在命令行中运行需要手动添加import os ...

随机推荐

  1. C#如何提高代码质量(一)

    代码部分 1.正确操作字符串 尽量少装箱 String str1 = "str2"+9.ToString(); 避免分配额外的内存空间 StringBuilder 2.使用默认转型 ...

  2. python 取整方法

    1.向下取整: int() 2.向上取整:ceil() 使用ceil()方法时需要导入math模块,例如 3.四舍五入:round() 4.分别取 将整数部分和小数部分分别取出,可以使用math模块中 ...

  3. PopClip使用教程图文详解 2022.12亲测有效

    PopClip简介 PopClip mac版是Macos上一款增强型复制粘贴工具,当你选中文字后,PopClip会自动弹出复制.剪切.粘贴.搜索等等操作,除了复制粘贴外,PopClip还提供了很多的扩 ...

  4. 华为云发布分布式编译构建系统CodeArts Build

    摘要:2月14日,华为云发布分布式编译构建系统CodeArts Build,旨在支撑企业实现高效的软件开发,缩短产品上市周期,帮助企业的软件产品快速形成关键竞争力. 本文分享自华为云社区<唯快不 ...

  5. Could not execute query ---> MySql.Data.MySqlClient.MySqlException: You have an error in your SQL sy

    1.出现问题 执行sql查询时出现如题错误,原因是安装mysql-connector-net的版本过高,当前项目在用的mysql版本不符合:关于当前安装的mysql-connector-net版本的查 ...

  6. axios实现跨域的问题 vue实现跨域

    第一次写博客,主要是记录自己的一些新的,不好的地方忘各位多多指点,请不要吐槽: 按踩坑顺序叙述.本人对http了解太少,所以坑踩得较多. 1.开始进行跨域时,知道vue2.0官方推荐axios进行aj ...

  7. element-UI button按钮颜色回显(一)

    按钮: <el-button id="manyou" @click="Ismovement" type="primary" >漫 ...

  8. 基于FLink实现的实时安全检测(一段时间内连续登录失败20次后,下一次登录成功场景)

    研发背景 公司安全部目前针对内部系统的网络访问日志的安全审计,大部分都是T+1时效,每日当天,启动Python编写的定时任务,完成昨日的日志审计和检测,定时任务运行完成后,统一进行企业微信告警推送.这 ...

  9. JZOJ 4308.长寿花

    题面 思路 这种题当然要 \(dp\) 啦 设 \(g_{i,j}\) 表示前 \(i\) 个位置用指定的 \(j\) 种颜色装饰(即用颜色 \(1..j\) 来装饰) 那么 \(g_{i,j}=g_ ...

  10. ABAP 辨析CO|CN|CA|NA|CS|NS|CP|NP

    1.文档说明 本篇文档将通过举例,解析字符的比较运算符之间的用法和区别,涉及到的操作符:CO|CN|CA|NA|CS|NS|CP|NP 2.用法和区别 用法总览 以下举例,几乎都使用一个字符变量和一个 ...