MICUU
微资讯
声卡
创新2024全套教程
5.1声卡全套
创新声卡驱动
板载声卡调试全套教程
Sam机架安装
Sam机架
音效助手
专题
文档
技术文档汇总
站内文档
更多
软件
更新日志
关于
装机必备
Gramos模板
光年后台模板
Betube模板
美图
友情链接
站内导航
关于
搜索
退出登录
登录
原创
[详细]php调用python脚本,将word转为html代码及调用失败处理
2020-10-21
42.32w热度
###[详细]php调用python脚本,将word转为html代码及调用失败处理 > 起因:因为公司遇到发稿问题,很多人喜欢用word编码,然后再发布到网站上。PHP的包中虽然有部分可以使用的类库,但是对于图片始终处理不好,我就想到了python。研究了下,python将word转为html还真是方便。但是,怎么结合到服务器上呢?我们的服务器是用PHP开发的。 1:python脚本 ``` #!/usr/bin/python # -*- coding: UTF-8 -*- import sys from pydocx import PyDocX reload(sys) sys.setdefaultencoding('utf8') FileName = sys.argv[1] #获取文件名参数 ShortName = sys.argv[2] #获取文件名参数 html = PyDocX.to_html(FileName) # f = open("/www/wwwroot/micuer.com/pythoncode/runtime/99.txt", 'w') #服务器的全路径 # f.write(html) # f.close() print(html) ``` 2:php处理脚本 ``` public function uploadword(){ try { $file = request()->file("file"); // 上传到本地服务器 $savename = \think\facade\Filesystem::disk('upload')->putFile( 'word', $file); $shotrname = time().".txt"; // 短名称 $savename = "/www/wwwroot/micuer.com/data/upload/".$savename; //Request::domain(). $python_file_name = "/www/wwwroot/micuer.com/pythoncode/WordToHtml.py"; //组装命令 $cmd = "python {$python_file_name} ".$savename." {$shotrname} 2>error.txt 2>&1"; $res = exec($cmd,$array, $ret); return json(["code"=>200,"msg"=>"成功","data"=>$savename,"cmd"=>$cmd,"array"=>$array]); } catch (think\exception\ValidateException $e) { return json(["code"=>40000,"msg"=>$e->getMessage()]); } } ``` 上传界面如下: [![](https://micuu.com/data/upload/20201021/5f8fc8ce6d8b2.png)](https://micuu.com/data/upload/20201021/5f8fc8ce6d8b2.png) 实现的功能就是利用PHP的exec函数,调用py脚本,将html代码返回给前台服务器。 返回数据如下 [![](https://micuu.com/data/upload/20201021/5f8fc9175f38d.png)](https://micuu.com/data/upload/20201021/5f8fc9175f38d.png) 其实,再处理这个方案中,也遇到了很多问题,比如在命令行下只能成功,但是exec函数执行不成功等等。 参考了资料:https://my.oschina.net/u/4427610/blog/3155816 也就是 ``` exec("python python_test.py 2>error.txt 2>&1", $array, $ret); ``` 在bash中0,1,2三个数字分代表STDIN_FILENO、STDOUT_FILENO、STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出)。 也可以通过以下方式将标准错误重定向到标准输出保存到$array中: 打印之后,发现是没有权限调用。于是就直接改为输出了,也就是 py的print(html)函数。 注意几点: 1:执行权限问题 2:exec("python python_test.py 2>error.txt 2>&1", $array, $ret); 中 $array就接受到了 print(html)的值 3:各个脚本尽量使用全路径
注:原创不易,转载请注明出处(
https://micuu.com/new/972.html
),本站所有资源来源于网络收集,如有侵权请联系QQ245557979进行清除。
最后修改与 2022-02-22
上一篇:
python获取命令行参数实例
下一篇:
ajax通用模板带header token
留言反馈
请先登录
问题反馈渠道,如有软件无法下载或者其他问题可反馈。【由于某种原因,目前留言不展示】
用户需要登录后才能留言反馈
立即留言
珍藏视频
10分钟高效燃脂
30天高效瘦脸操
5分钟缓解颈椎操
友人
微博
全民K歌
唱吧
今日头条
悠悠网
科技小锅盖
彼岸桌面
阮一峰
laravel社区
V2ex
掘金
更多>