HLJ 发布于
2019-01-06 10:27:28

PHP代码中调用exec执行带中文命令字符集问题

情况是这样的,最近公司做了个项目,其中后台上传的文档不论啥格式都先转换成pdf,然后在把pdf转换成swf,然后就用php的exec去执行的命令。
刚开始测试的时候都是用的英文名称,后用中文名称发现,转换总是报错,然后把命令打印出来,拿去linux下直接执行又是没问题的,找了好久的问题,直到发现这篇文章 《PHP 调用 exec 执行中文命令的坑》,详细的大家可以去看看
解决办法:
在exec 的命令前首先指定字符集: 
$set_charset = 'export LANG=en_US.UTF-8;';
$trans_pdf = "unoconv -f pdf  -o '{$file_info['file_path']}.pdf' '{$file_info['file_path']}' 2>&1";
putenv('PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin');
exec("export DISPLAY=:0.0");
exec($set_charset.$trans_pdf,$p,$s);
文章来源:转载http://www.phpzero.com/post-63.html
最后生成于 2023-06-18 18:32:07
此内容有帮助 ?
0