php调用php解析器,从变量传递php脚本代码来执行
版权声明:
本文为博主原创文章,转载请声明原文链接...谢谢。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);