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

来源:赵克立博客 分类: PHP 标签:PHP发布时间:2021-01-09 15:24:44最后更新:2021-01-09 15:25:50浏览:40
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。o_0。
更新时间:
2021-01-09 15:25:50
温馨提示:
技术类文章有它的时效性,请留意文章更新时间,如发现内容有误请留言指出,防止别人"踩坑",我会及时更新文章

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);

2101091610177127729011.png


微信号:kelicom QQ群:215861553 紧急求助须知
点击更换验证码
Win32/PHP/JS/Android/Python