input 传递给php变量,php调用php解析器,从变量传递php脚本代码来执行

php从命令行执行时可以使用 -r参数来传递执行的php代码,如果我们从程序中传php脚本来执行就会涉及到引号替换的问题,下面记录一个从输入流传递执行的php代码的方法<?php

$descriptorspec = [

0 => ["pipe", "r"],  // 启动的命令行可以从这里读取内容

1 => ["pipe", "w"],   // 启动的命令行会把内容输出到这里

2 => ['pipe', 'w']    //启动的命令行会把错误信息输出到这里

];

//启动命令行处理程序

$process = proc_open('php -a ', $descriptorspec, $pipes);

// 把内容客情入标准输入管道使用命令行中可以读取

$inputScript='echo 1;';

fwrite($pipes[0], $inputScript);

fclose($pipes[0]);

// 从输出管道中读取命令行输出的内容

$content = stream_get_contents($pipes[1]);

fclose($pipes[1]);

$output_error = stream_get_contents($pipes[2]);

fclose($pipes[2]);

//关闭

$return_value = proc_close($process);

//替换掉开头的输出和空行

// $content=preg_replace('@Interactive shell\s*\n\s*\n@','',$content);

print_r($content);

3274acc7b1c81a79f74c0869d2367dc5.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值