位置: 编程技术 - 正文

PHP:proc_open()的用法_命令行函数(php proto)

编辑:rootadmin
proc_open

推荐整理分享PHP:proc_open()的用法_命令行函数(php proto),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php proto,php opencv,php opencv,php proc_open,php proto,php open,php protobuf,php opencv,内容如对您有帮助,希望把文章链接给更多的朋友!

(PHP 4 >= 4.3.0, PHP 5)

proc_open — 执行一个命令,并且打开用来输入/输出的文件指针。

说明 resource proc_open ( string $cmd , array $descriptorspec , array &$pipes [, string $cwd [, array $env [, array $other_options ]]] )

类似 popen() 函数, 但是 proc_open() 提供了更加强大的控制程序执行的能力。

参数

cmd

要执行的命令

descriptorspec

一个索引数组。 数组的键表示描述符,数组元素值表示 PHP 如何将这些描述符传送至子进程。 0 表示标准输入(stdin),1 表示标准输出(stdout),2 表示标准错误(stderr)。

数组中的元素可以是: 包含了要传送至进程的管道的描述信息。 第一个元素为描述符类型, 第二个元素是针对该描述符的选项。 有效的类型有:pipe (第二个元素可以是: r 向进程传送该管道的读取端,w 向进程传送该管道的写入端), 以及 file(第二个元素为文件名)。 表达一个真实文件描述符的流资源类型 (例如:已打开的文件,一个 socket 端口,STDIN)。

文件描述符的值不限于 0,1 和 2,你可以使用任何有效的文件描述符 并将其传送至子进程。 这使得你的脚本可以和其他脚本交互操作。 例如,可以通过指定文件描述符将密码以更加安全的方式 传送至诸如 PGP,GPG 和 openssl 程序, 同时也可以很方便的获取这些程序的状态信息。

pipes

将被置为索引数组, 其中的元素是被执行程序创建的管道对应到 PHP 这一端的文件指针。

cwd

要执行命令的初始工作目录。 必须是 绝对 路径, 设置此参数为 NULL 表示使用默认值(当前 PHP 进程的工作目录)。

env PHP:proc_open()的用法_命令行函数(php proto)

要执行的命令所使用的环境变量。 设置此参数为 NULL 表示使用和当前 PHP 进程相同的环境变量。

other_options

你还可以指定一些附加选项。 目前支持的选项包括: suppress_errors (仅用于 Windows 平台): 设置为 TRUE 表示抑制本函数产生的错误。 bypass_shell (仅用于 Windows 平台): 设置为 TRUE 表示绕过 cmd.exe shell。

返回值

返回表示进程的资源类型, 当使用完毕之后,请调用 proc_close() 函数来关闭此资源。 如果失败,返回 FALSE。

更新日志

版本 说明 5.2.1 为 other_options 参数增加 bypass_shell 选项。 5.0.0 增加 cwd, env 和 other_options 参数。

范例

Example #1 proc_open() 例程

<?php$descriptorspec=array(0=>array("pipe","r"),//标准输入,子进程从此管道中读取数据1=>array("pipe","w"),//标准输出,子进程向此管道中写入数据2=>array("file","/tmp/error-output.txt","a")//标准错误,写入到一个文件);$cwd='/tmp';$env=array('some_option'=>'aeiou');$process=proc_open('php',$descriptorspec,$pipes,$cwd,$env);if(is_resource($process)){//$pipes现在看起来是这样的://0=>可以向子进程标准输入写入的句柄//1=>可以从子进程标准输出读取的句柄//错误输出将被追加到文件/tmp/error-output.txtfwrite($pipes[0],'<?phpprint_r($_ENV);?>');fclose($pipes[0]);echostream_get_contents($pipes[1]);fclose($pipes[1]);//切记:在调用proc_close之前关闭所有的管道以避免死锁。$return_value=proc_close($process);echo"commandreturned$return_valuen";}?>

以上例程的输出类似于:

注释

Note:

Windows 兼容性:超过 2 的描述符也可以作为可继承的句柄传送到子进程。 但是,由于 Windows 的架构并不将文件描述符和底层句柄进行关联, 所以,子进程无法访问这样的句柄。 标准输入,标准输出和标注错误会按照预期工作。

Note:

如果你只需要单向的进程管道, 使用 popen() 函数会更加简单。

参见

popen() - 打开进程文件指针 exec() - 执行一个外部程序 system() - 执行外部程序,并且显示输出 passthru() - 执行外部程序并且显示原始输出 stream_select() - Runs the equivalent of the select() system call on the given arrays of streams with a timeout specified by tv_sec and tv_usec The 执行操作符

PHP:shell_exec()的用法_命令行函数 shell_exec(PHP4,PHP5)shell_exec通过shell环境执行命令,并且将完整的输出以字符串的方式返回。说明stringshell_exec(string$cmd)本函数同执行操作符。参数cmd要执行

PHP:exec()的用法_命令行函数 exec(PHP4,PHP5)exec执行一个外部程序说明stringexec(string$command[,array&$output[,int&$return_var]])exec()执行command参数所指定的命令。参数command要执行的命令。output如

PHP:proc_terminate()的用法_命令行函数 proc_terminate(PHP5)proc_terminate杀除由proc_open打开的进程说明boolproc_terminate(resource$process[,int$signal=])向process(由proc_open()函数创建)发送信号通知其终止。pro

标签: php proto

本文链接地址:https://www.jiuchutong.com/biancheng/284701.html 转载请保留说明!

上一篇:PHP:system()的用法_命令行函数(php system函数的用法)

下一篇:PHP:shell_exec()的用法_命令行函数

  • 增值税发票勾选确认后可以撤销吗
  • 缴纳印花税的会计凭证
  • 组成计税价格包括什么
  • 地产企业预缴增值税政策
  • 普通发票税额没有打印全可以用么
  • 包装物押金计入成本吗
  • 电子税务局税种认定怎么操作
  • 附加税费计税依据
  • 购进电脑怎么折旧
  • 销售过程中客户买的是什么
  • 房产未竣工如何缴纳房产税
  • 合理合法的纳税人是谁
  • 联营和合营的区别
  • 公司注销前的发言怎么写
  • 亏损企业所得税弥补
  • 由于疏忽装修费用之前没有摊销应如何处理
  • 免税农产品转出进项税税率
  • 报销发票财务一旦作废报销人可以收回吗?
  • 增值税普通发票需要交税吗
  • 收到投资款需要什么原始凭证
  • 变更办税人需要原办税人去吗
  • 高新技术企业所得税税率
  • 企业将自产产品发放给职工作为福利
  • 劳务外包与劳务派遣公司
  • 确认整个会计年度的依据
  • 税务局开的专票可以抵扣吗
  • 辅导费是什么
  • 停工损失会计准则
  • 建筑业预缴企业所得税税率是多少
  • win10更新错误0x8000402
  • php declare函数
  • 不动产租赁费计入什么科目
  • 房屋权属转移是什么意思
  • 应付债券利息费用
  • PHP:gmstrftime()的用法_Date Time函数
  • 确保政府采购
  • 转入固定资产清理会计科目
  • 工程项目出纳
  • 维修费成本怎么结转
  • imu定位
  • c语言中数组越界
  • 应付账款增值税怎么算
  • 交通运输增值税专票
  • Spring(三)-AOP
  • phpcms是什么
  • mysql备份方式有哪些
  • 免征文化事业建设费条件的销售额标准
  • 原材料的会计处理有哪些
  • mysql 中文乱码 识别
  • 原材料的主要账目有哪些
  • 一般纳税人增值税减免政策2023
  • 让渡资产使用权收入属于收入吗
  • 关于小规模纳税人的说法正确的是
  • 超过保质期放冰箱还能吃吗
  • 库存商品冲回
  • 应付职工薪酬如何进行会计处理
  • 建账时应注意的事项有
  • 建账的大体流程是什么
  • 如何控制自己不磨牙
  • 行为异常不能使用优惠
  • win8系统打不开设置
  • win10怎么用ghost
  • win8怎么分配磁盘空间
  • centos7如何添加光盘
  • linux在服务器的份额
  • xshell如何使用
  • win8更改电脑设置在哪
  • linux卸载repo
  • cocos2dx运行原理
  • div滚动条怎么设置
  • opengl怎么学
  • node.js快速入门
  • Node.js中的事件循环是什么
  • nodejs增删改查
  • 如何用python连接数据库
  • javascript的代码写在哪里
  • 简述jquery的常用方法
  • 电话费的税费计入什么科目
  • 中国有哪些自由贸易港
  • 浙江省社保网报系统
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设