php命令行显示数据 php 命令

如何正确实现PHP命令行读取参数$argc为参数个数 php命令行显示数据,因为脚本名称总是作为第一个参数php命令行显示数据,所以$argcphp命令行显示数据的最小值为1
$argv 为参数数组 ,第一个参数为脚本名称 , 其他参数为传给脚本的参数
如 phpa.php arg1 arg2
$argc = 3
$argv[0] = "a.php";
$argv[1] = "arg1";
$argv[2] = "arg2";
PHP如何接收动态数据保存并实时显示到网页上?头部加上超时控制,但对于很多服务器无效 , 因为服务器输出超时很多在服务器控制,所以建议用cmd脚本方式运行此程序:
?php
set_time_limit(0); //禁用脚本超时
// Create the socket and connect
【php命令行显示数据 php 命令】$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$connection = socket_connect($socket,'116 。236 。128 。220', 14580);
// Write some test data to our socket
if(!socket_write($socket, "user NoCall pass -1 vers test 1.0 filter b/B* \r\n"))
{
echo("pWrite failed/p");
}
if(!file_exists('socket_log.html')){
file_put_contents('socket_log.html', 'script
var xx = setInterval(function(){ //每5秒刷新一次页面
window.location.reload();
}, 5000);
/script');
}
// Read any response from the socket
while($buffer = socket_read($socket, 64, PHP_NORMAL_READ))
{
echo json_encode($buffer); //转换为json数据输出
//记入文件
file_put_contents('socket_log.html', json_encode($buffer), FILE_APPEND);
}
echo("pDone Reading from Socket/p");
使用方法:用命令行方式运行此脚本
php script.php
脚本会一直运行到接收数据结束,并持续将收到的数据写入socket_log.html文件 。
在浏览器打开socket_log.html页面,此页面会自动每5秒刷新一次,来显示最新的数据 。
确保程序有权限创建及写入socket_log.html文件
如何创建phpinfo查看php信息1、方法一:
命令行查询,如果已经配置好环境变量 , 直接在命令行中输入php -v , 将会显示php的版本信息 。如果没有配置环境变量,直接在命令行中进入到php的安装目录后,再输入命令php -v,在安装目录下输入查询命令,可以看到输出的版本信息为PHP5.3.29 。
2、方法二:
(1)使用预定义常量PHP_VERSION查询 , 新建一个php文件,在里面输入?phpecho PHP_VERSION;? 。
(2)在浏览器中输出对应的网址,就可以查看到php的版本信息 。
3、方法三:
(1)使用phpversion()函数查询,新建一个php文件,在文件中输入?phpecho phpversion();?即可 。
(2)在浏览器中访问,可以看到浏览器页面上返回的php版本信息,跟预定义常量PHP_VERSION显示效果一样 。
4、方法四:
(1)使用phpinfo()函数查询,新建一个php文件,在文件中输入?phpecho phpinfo();?即可 。
(2)在浏览器中访问,可以看到不仅可以看到PHP的版本信息,还能看到其它很多关于PHP的信息 。
如何在Linux服务器上查看PHP信息linux服务器查看php信息,用到的工具:雅黑探针,步骤如下:
下载雅黑探针,也就是一个一个tz.php的探针文件,可以自己改成任意的名称 。
2.将下载的探针文件上传到linux服务器的任意一个网站目录下边,然后运行一下,就可以输出php的信息,效果图如下:
3.可以利用以下命令查看php信息 , 输入以下命令:
php -v
输出:
PHP 5.4.45 (cli) (built: Oct 11 2016 23:35:56)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
with the ionCube PHP Loader (enabled)Intrusion Protection from ioncube24.com (unconfigured) v6.0.6, Copyright (c) 2002-2016, by ionCube Ltd.
with Zend Guard Loader v3.3, Copyright (c) 1998-2013, by Zend Technologies
效果图:
注意事项:利用php探针查看php信息前提必须安装php环境 。
如何获取PHP命令行参数如何获取PHP命令行参数
使用 PHP 开发的同学多少都会接触过 CLI 命令行 。经常会有一些定时任务或者一些脚本直接使用命令行处理会更加的方便,有些时候我们会需要像网页的 GET 、 POST 一样为这些命令行脚本提供参数 。比如在针对某些日期做统计的脚本,就需要传递一个日期给它,这样我们就统计指定日期的一些数据 。这类需求应该非常常见,那么,我们都是如何来接收这些命令行的参数的呢?今天,就来介绍一下这方面的内容 。
$argv 获得所有空格分隔的参数列表
这个变量估计是大家用得比较多的一个接参变量php命令行显示数据了 。它是 PHP 为我们准备好的一个固定变量,目的就是获取传递给脚本的参数数组 。
print_r($argv); // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc ddd// Array // ( //[0] = 如何获取PHP命令行参数.php //[1] = --a=1 //[2] = -b=2 //[3] = -c=3 //[4] = -d=4 //[5] = --e=5 //[6] = ccc //[7] = ddd // )
这个数组是以参数间隔的空格进行分隔的 。第1个元素是当前运行的脚本文件名 , 也就是说 , 不管有没有参数,这个变量一定会有一个 $argv[0] 表示的是当前的脚本文件名 。
在日常的开发需求中,其实使用这个变量就已经够用了 。但是这明显不会是我们今天的主题 , 大家注意到上面的代码中我们有很多参数是 -x=xxx 的形式,这种形式的参数是不是和 Linux 的命令选项非常像,没错,这就是我们今天要重点介绍的:从命令行参数列表中获取选项 。
getopt() 从命令行参数列表中获取选项
其实就是这样一个简单的函数,我们就可以像 Linux 的命令选项一样获取指定的命令值 。而且不是像 $argv 按空格进行分隔,命令选项函数会将这些命令选项封装成数组,组成以选项名为键,以等号后面的内容为值的数组,更加方便我们的使用 。
// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc dddprint_r(getopt('a:b:c:d:e:f:')); // Array // ( //[b] = 2 //[c] = 3 //[d] = 4 // )
是不是很神奇,而且非常直观吧,我们直接就拿到了 b 、 c 、d 的内容并且是格式非常清晰的键值数组形式 。有同学要问了,a 和 e 呢?还有后面的 ccc 、 ddd 呢?
首先要说明的是,ccc 和 ddd 不是标准的选项参数,也就是说 , 这个函数接收的内容是以 - 开头的选项,所以 ccc 和 ddd 不会在这里输出,并且需要注意的是,非选项参数会中断选项参数的获?。?在 ccc 之后如果继续添加 - 开头的选项也是无法获取到的,这个我们后面还会看到 。而 -- 开头的选项参数呢?我们直接看下面的长选项功能 。
长选项// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc dddprint_r(getopt('', ['a:','b:','c:','d:','e:','f:'])); // Array // ( //[a] = 1 //[e] = 5 // )
没错,getopt() 函数的第二个参数就是定义这种 -- 开头的长选项的 , 而且需要注意的是 , 第一个参数是字符串类型,第二个长选项参数是数组类型的 。那么我们把它们结合起来,就当然可以获取到全部的参数信息啦php命令行显示数据!
// php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc dddprint_r(getopt('a:b:c:d:e:f:', ['a:','b:','c:','d:','e:','f:'])); // Array // ( //[a] = 1 //[b] = 2 //[c] = 3 //[d] = 4 //[e] = 5 // )
OK,参数选项获取没问题了吧 , 细心的同学肯定又发现了一个问题,这个 getopt() 函数的参数中定义的选项名称后面为啥都要加个冒号?这就涉及到我们的冒号规则了 , 请直接往下看 。
冒号规则
getopt() 的前两个参数都支持一套关于选项获取的规则:
单独的字符(不接受值)后面跟随冒号的字符(此选项需要值)后面跟随两个冒号的字符(此选项的值可?。?
我们还是直接通过代码来看一下 。
// 一 // php 如何获取PHP命令行参数.php --a=1 -b=2 -c=3 -d=4 --e=5 ccc dddprint_r(getopt('abcdef')); // Array // ( //[b] =//[c] =//[d] =// )// 二 // php 如何获取PHP命令行参数.php -f print_r(getopt('f::')); // Array // ( //[f] =// ) print_r(getopt('f:')); // Array // ( // )// 三 // php 如何获取PHP命令行参数.php -f 22 print_r(getopt('f::')); // Array // ( //[f] =// ) print_r(getopt('f:')); // Array // ( //[f] = 22 // )// 四 // php 如何获取PHP命令行参数.php -f=22 print_r(getopt('f::')); // Array // ( //[f] = 22 // ) print_r(getopt('f:')); // Array // ( //[f] = 22 // )
这一段比较长,我们一块一块来看 。首先是不带冒号的 abcdef 写法,返回的数组中都包含键 , 但没有值,对应上面的规则就是不接受这些参数选项的值,你传了这些参数选项也是只有键名而内容是空的 。
第二段是定义了一个参数,但是不给值,这时,双冒号 :: 会有键名 , 而单冒号 : 则什么都没有 。
第三段是空格形式的选项值 , 双冒号 :: 有键名但没有值 , 单冒号 : 键值正常 。
第四段是等号 = 形式的选项值,单双冒号都正常接收到键值 。
选项参数中断
上文中我们提到过参数中断的问题 , 就是在选项参数之后如果有一个非选项参数的参数出现,getopt() 就无法再获取到这个非选项参数后面的所有内容了 。
// php 如何获取PHP命令行参数.php -f=22 aa -b=33 // 选项的解析会终止于找到的第一个非选项,之后的任何东西都会被丢弃 。// Array // ( //[f] = 22 // )
通过这个测试可以清晰的看出后面的 b 选项无法获取 。这时,如果我们想知道选项参数在什么地方或者因为哪个参数而中断的话,就可以使用 getopt() 函数的第三个参数了 。
// php 如何获取PHP命令行参数.php -f=22 aa -b=33 $optind = null; getopt('f:b:', [], $optind); echo $optind, PHP_EOL; // 返回中断位置的索引值,2 echo $argv[$optind], PHP_EOL; // 等同于 $argv 的索引顺序,aa
注释已经写得很清晰了 , 第三个参数会回调一个参数选项中断位置的索引,并且这个索引是和 $argv 的索引顺序位置一致的 。
总结
说实话,在没看文档前真的只知道有一个 $argv 变量可以用来获取命令行脚本的参数,通过这次学习才发现原来还有一个这么强大的选项参数函数 。学习的过程非常简单,如何运用到真实的项目中才是关键所在,加油学习,努力实践吧!
测试代码:
如何通过Linux命令行使用和运行PHP脚本1.用php -q 文件名.php 方式把php程序当shell程序来用php命令行显示数据,
2.用php -s把自己的php程序显示有语法高亮色彩的html源文件 。这样是不是很省心php命令行显示数据?
3.利用php的odbc功能可以在shell命令中对数据库进行操作 。
#0 6 * * * /usr/local/bin/php/home/web/do/index.php
4.查看扩展库
/usr/local/php/bin/php -m
5.检查php.ini配置是否正确
/usr/local/php/bin/php -v
6.让php运行指定文件
php my_script.php
php -f my_script.php
7.在命令行直接运行 PHP 代码 。
php -r ‘print_r(get_defined_constants());’
php -r ‘phpinfo();’
8.用该参数 , 您可以指定一个放置 php.ini 文件的目录,或者直接指定一个自定义的 INI 文件
php -c /custom/directory/custom-file.ini my_script.php
9.显示除去php命令行显示数据了注释和空格的源代码 。
php -w a.php
10.php -i
该命令行参数会调用 phpinfo() 函数,并打印出结果 。
关于php命令行显示数据和php 命令的介绍到此就结束了 , 不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站 。

    推荐阅读