gpt4 book ai didi

php - 当两者都安装在一台服务器上时如何通过 PHP 使用 Tika?

转载 作者:可可西里 更新时间:2023-10-31 23:03:59 26 4
gpt4 key购买 nike

  • 我需要制作一个内部网站,允许用户上传 .doc、.pdf、.xls 文件并在文本框内查看文本。
  • 我已经用 PHP 创建了网站,用户可以上传文件。
  • 我已经在我的服务器上安装了 Tika,在命令行中可以键入 java -jar tika-app-1.10-SNAPSHOT.jar -m manu.pdf > output.txt 成功创建文本我需要在输出文件中。

为了将上传文件的纯文本导入 PHP,从 PHP 调用 Tika 的最佳方式是什么?

四处搜索我发现:

  1. 调用“Tika 服务器”的 PHP 代码,例如使用 curl
  2. Tika 的 PHP 包装类似乎在安装了 PHP 的同一台服务器上使用 Tika,但我还没有让它们中的任何一个工作。
  3. 或者,我可以简单地通过 exec 命令调用 Tika。

但我不确定最简单的方法是什么。

最佳答案

更简单的方法(调用API)

对于在远程服务器上运行,我建议您使用 curlGuzzle 来调用地址(但您也可以简单地使用 file_get_contents并将调用远程服务器上的 Tika 的 API 的 URL 传递给它。

其他方法(在本地服务器上执行进程)

为了在本地(TikaPHP 在同一台服务器上)运行解析,我使用了 Synfony/Process .

我个人不建议您只使用 exec


我要补充一点,在另一台服务器上安装 Tika 会强制您向该服务器发送用户上传的整个文件负载。虽然更快的解决方案是只接收上传,执行 PHP,并直接从同一个脚本(或至少从同一台机器)调用 Tika 进程。否则你需要一个脚本:

  • 接收上传的数据
  • 上传Tika 服务器(可能作为 API 调用的负载)
  • 告诉 Tika(通过 API)在远程服务器上解析文件
  • 下载响应解析数据
  • 使用它或展示它。

正如我强调的那样,两台服务器之间的通信会产生更多的开销;当要解析的文件可能是 35MB 的 pdf 文件时,这是不可取的,是吗?用户将不得不等待,比方说,2 分钟用于上传,加上其他,比方说,20 秒将文件发送到 Tika 服务器,然后是其他, 假设 3 秒得到文本格式的解析结果。

我强烈建议留在同一个 PHP 服务器上工作。

关于php - 当两者都安装在一台服务器上时如何通过 PHP 使用 Tika?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30646129/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com