php命令行模式代码实例详解


Posted in PHP onFebruary 26, 2021

php全集行模式,即php-cli,官方文档中称为: CLI SAPI(Server Application Programming Interface,服务端应用编程端口).听着挺复杂。其实是因为php原本为服务器端的脚本语言,所以引申出这个叫法。

与服务端模式的不同

服务端模式主要有两种工作方式: 作为web server的模式方式或作为一个cgi可执行程序. 前者,比如作为apach中的一个模块(如:php5apache2.dll); 后者作为可执行程序,如php-cig. 现在的替代者为php-fpm(FastCGI Process Manager).

看下php-fpm的配置。 在服务器上,放一脚本文件,内容:

<?php

phpinfo();

?>

输出:

Server API FPM/FastCGI

Virtual Directory Support  disabled

Configuration File (php.ini) Path  /etc/php7

Loaded Configuration File  /etc/php7/php.ini

Scan this dir for additional .ini files /etc/php7/conf.d

说明配置文件为 /etc/php7/php.ini的/etc/php7/conf.d

再看下cli模式的配置文件. 运行

php -r "phpinfo();"

-rrun运行全集意思. 输出为:

Server API => Command Line Interface

Virtual Directory Support => disabled

Configuration File (php.ini) Path => /etc/php/7.0/cli

Loaded Configuration File => /etc/php/7.0/cli/php.ini

Scan this dir for additional .ini files => /etc/php/7.0/cli/conf.d

Additional .ini files parsed => /etc/php/7.0/cli/conf.d/10-opcache.ini,

配置文件路径为: /etc/php/7.0/cli/php.iniphp-fpm是不同的。

常听到有人说,php只能作为服务器暂时间脚本,不能作为长时间工作,还有安全配置会影响命令行等,显然是错误的。

其它差异

cli模式,定义了STDIN, STDOUT, STDERR三个常量; 如: $stderr = fopen(‘php://stderr', ‘w');

CLI SAPI 不会将当前目录改为已运行的脚本所在的目录.

php作为shell脚本

有两种方法将php脚本作为shell脚本, 如脚本:

hello.php

<?php

echo "hello world!";

var_dump($argv);

?>

方法1 php 脚本 参数

~php hello.php -s 'me'

hello world

array(3) {

 [0]=>

 string(9) "hello.php"

 [1]=>

 string(2) "-s"

 [2]=>

 string(2) "me"

}

方法2 在php文件头加

#!/usr/bin/php

然后 chmod u+x hello.php

执行 ./hello.php

hello world

array(1) {

 [0]=>

 string(11) "./hello.php"

}

到此这篇关于关于php命令行模式代码实例详解的文章就介绍到这了,更多相关关于php命令行模式内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

PHP 相关文章推荐
PHP新手上路(九)
Oct 09 PHP
php之对抗Web扫描器的脚本技巧
Oct 01 PHP
php加密算法之实现可逆加密算法和解密分享
Jan 21 PHP
PHP curl CURLOPT_RETURNTRANSFER参数的作用使用实例
Feb 07 PHP
php筛选不存在的图片资源
Apr 28 PHP
PHP实现中文圆形印章特效
Jun 19 PHP
浅谈php错误提示及查错方法
Jul 14 PHP
PHP微信红包API接口
Dec 05 PHP
Yii使用migrate命令执行sql语句的方法
Mar 15 PHP
PHP 配置后台登录以及模板引入
Jan 24 PHP
PHP编程实现的TCP服务端和客户端功能示例
Apr 13 PHP
PHP标准库 (SPL)――Countable用法示例
Jun 05 PHP
PHP时间类完整代码实例
Feb 26 #PHP
PHP队列场景以及实现代码实例详解
Feb 26 #PHP
PHP实现长轮询消息实时推送功能代码实例讲解
Feb 26 #PHP
php的对象传值与引用传值代码实例讲解
Feb 26 #PHP
php并发加锁问题分析与设计代码实例讲解
Feb 26 #PHP
PHP内存溢出优化代码详解
Feb 26 #PHP
php自动加载代码实例详解
Feb 26 #PHP
You might like
PHP输出控制功能在简繁体转换中的应用
2006/10/09 PHP
pw的一个放后门的方法分析
2007/10/08 PHP
php JWT在web端中的使用方法教程
2018/09/06 PHP
TNC vs BOOM BO3 第三场2.13
2021/03/10 DOTA
使用正则替换变量
2007/05/05 Javascript
contains和compareDocumentPosition 方法来确定是否HTML节点间的关系
2011/09/13 Javascript
javascript中encodeURI和decodeURI方法使用介绍
2013/05/06 Javascript
基于 Docker 开发 NodeJS 应用
2014/07/30 NodeJs
将页面table内容与样式另存成excel文件的方法
2015/08/05 Javascript
jQuery实现鼠标滑过点击事件音效试听
2015/08/31 Javascript
jquery实现鼠标点击后展开列表内容的导航栏效果
2015/09/14 Javascript
javascript实现粘贴qq截图功能(clipboardData)
2016/05/29 Javascript
jQuery 3.0中存在问题及解决办法
2016/07/15 Javascript
JS实现自动阅读单词(有道单词本添加功能)
2016/11/14 Javascript
微信小程序上滑加载下拉刷新(onscrollLower)分批加载数据(一)
2017/05/11 Javascript
vue组件详解之使用slot分发内容
2018/04/09 Javascript
vue项目中vue-i18n和element-ui国际化开发实现过程
2018/04/25 Javascript
微信小程序中使用ECharts 异步加载数据实现图表功能
2018/07/13 Javascript
angular-tree-component的使用详解
2018/07/30 Javascript
vue forEach循环数组拿到自己想要的数据方法
2018/09/21 Javascript
js form表单input框限制20个字符,10个汉字代码实例
2019/04/12 Javascript
[04:01]2014DOTA2国际邀请赛 TITAN告别Ohaiyo期望明年再战
2014/07/15 DOTA
[01:15:36]加油刀塔第二期网络版
2014/08/09 DOTA
[01:02:47]EG vs Secret 2019国际邀请赛淘汰赛 胜者组 BO3 第一场 8.21.mp4
2020/07/19 DOTA
[01:04:20]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第一场 11.29
2020/12/02 DOTA
Django的信号机制详解
2017/05/05 Python
详解Python读取配置文件模块ConfigParser
2017/05/11 Python
对Python 检查文件名是否规范的实例详解
2019/06/10 Python
如何利用Python开发一个简单的猜数字游戏
2019/09/22 Python
python保留格式汇总各部门excel内容的实现思路
2020/06/01 Python
澳大利亚新奇小玩意网站:Yellow Octopus
2017/12/28 全球购物
意大利火车票和铁路通行证专家:ItaliaRail
2019/01/22 全球购物
电力培训心得体会
2014/09/02 职场文书
学习计划是什么
2019/04/30 职场文书
Springboot/Springcloud项目集成redis进行存取的过程解析
2021/12/04 Redis
win10系统计算机图标怎么调出来?win10调出计算机图标的方法
2022/08/14 数码科技