使用以下软件:http://silvercoders.com/en/products/doctotext/
我使用以下代码在我的Window机器上工作:
<?php
$file = 'C:\xampp\htdocs\SMF\sdsdssss.docx';
$content = exec( 'C:\xampp\htdocs\SMF\doctotext\doctotext.exe /c '. $file , $output );
var_dump( $output );
然而,当我在我的Centos机器上尝试使用该软件的linux x86_64版本时,我无法让它工作。 (是的,我的机器也是x86_64)
我试过了:
<?php
$file = '/home/***/public_html/downloads/test_doc.docx';
$content = shell_exec( '/home/***/public_html/doctotext/doctotext.sh \c '. $file , $output );
但没有输出。那些运行centos的等效执行格式是什么。
请告知
答案 0 :(得分:0)
首先,shell_exec()
没有采取第二个论点。我认为你将这个函数与exec()
混淆,后者确实需要多个参数:
exec('/home/***/public_html/doctotext/doctotext.sh \c '. $file, $output, $return);
来自shell_exec()
的文档:
当发生错误或程序没有输出时,此函数可以返回NULL。使用此功能无法检测执行失败。当需要访问程序退出代码时,应使用exec()。
其次,我认为您首先应该检查以便shell脚本具有执行权限。您可以使用以下方式设置正确的权限:
chmod +x /home/***/public_html/doctotext/doctotext.sh
根据脚本的功能,您可能还需要以root权限运行它:
sudo php -f myscript.php
如果您通过浏览器运行脚本,还应确保Web服务器可以读取shell脚本的路径。
如果您启用了错误报告并检查运行脚本时是否收到任何错误消息,那也不错。