请问php如何与bat文件进行交互?
比如正常执行bat文件后是需要用户在窗口里写入一些内容,然后回车提交的,那么在php里需要如何去与之交互?
使用proc_open的问题
我准备使用proc_open来与bat文件进行交互,代码是这样的
$descriptorspec = array(
0 => array("pipe", "r"),
1 => array("pipe", "w"),
2 => array("file", storage_path('logs/laravel.log'), "a")
);
$process = proc_open('D:\s1.bat', $descriptorspec, $pipes);
我运行了一个不存在的文件,错误写在了laravel.log中,但为什么错误信息是乱码?
我尝试了在PHPStorm里修改项目的文件编码,或文件的转码,但都没有任何效果。。。
system()
纯手撸的话,可以用 proc_open 这个函数的第二个参数和第三个参数可以用来控制输入。
也可以用 symfony/process 这个封装过的或许要好用一点二,但是原理都是一样的。
运行 bat 然后输入你要输入的参数
本地 就 php 对应功能的 xx.php eg: php index.php 参数 参数 参数
要么就 请求 你的 phpweb