java -jar tika-app-1.10-SNAPSHOT.jar -m manu.pdf > output.txt
,它成功地在输出文件中创建了我需要的文本。从PHP中调用Tika的最佳方法是将上传的文件的纯文本输入PHP?
四处搜寻我发现:
exec
命令调用Tika。但我不知道什么是最简单的方法。
发布于 2015-06-04 06:17:33
如果它位于您自己的托管服务器上,并且您知道PHP和Tika的位置,那么只需使用exec
即可。或者如果您更喜欢更好的控制(我怀疑您不需要),可以使用shell_exec
如果您有一些性能问题,并且/或需要扩展这个问题,那么就有一个更详细的解决方案的空间。
发布于 2015-06-04 06:30:48
更简单的方法(调用API)
为了在远程服务器上运行,我建议您使用curl
或Guzzle
来调用地址(但您也可以简单地使用file_get_contents
并将在远程服务器上调用Tika的API的URL传递给它。
其他方法(在本地服务器上执行进程)
为了在本地(在同一服务器上运行Tika和PHP )运行解析,我使用了Synfony/过程。
就我个人而言,我不鼓励你仅仅使用exec
。
我要补充的是,在另一台服务器上安装Tika将迫使您向该服务器发送从用户上传的整个文件有效负载。一个更快的解决方案是只接收上传,使用PHP执行,并直接从相同的脚本(或至少从同一台机器)调用Tika进程。否则,您需要一个脚本:
正如我所强调的,就像两个服务器之间的通信一样,会有更多的开销;当要解析的文件可能是一个35 it的pdf-文件时,这是不可取的,对吗?用户需要等待,比如说,上传2分钟,+ other,比方说,20秒将文件发送到Tika服务器,然后再等待3秒,得到文本格式的解析结果。
我强烈建议留在同一PHP服务器上工作。
https://stackoverflow.com/questions/30646129
复制