java -jar tika-app-1.10-SNAPSHOT.jar -m manu.pdf > output.txt
который успешно создает текст, который мне нужен в выходном файле.Как лучше всего вызвать Tika из PHP, чтобы получить простой текст загруженного файла в PHP?
Осматривая вокруг, я нахожу:
exec
команда.Но я не уверен, что это самый простой способ продолжить.
Если это на ваших собственных управляемых серверах, и оба PHP а также Тика места вам известны, просто используйте exec
,
Или, если вы предпочитаете лучший контроль (который, я подозреваю, вам не нужен), используйте shell_exec
Если у вас есть проблемы с производительностью, и / или вам нужно масштабировать эту вещь, то есть место для более сложного решения.
Для запуска на удаленном сервере я предлагаю вам использовать curl
или же Guzzle
позвонить по адресу (но вы также можете просто использовать file_get_contents
и передайте ему URL для API, который будет вызывать Тика на удаленном сервере.
Для запуска разбора на локальный (Тика а также PHP на том же сервере) я использовал Synfony / Процесс.
Я бы лично отговорил вас от использования exec
,
Я бы добавил, что наличие Tika на другом сервере заставит вас отправить на этот сервер всю полезную нагрузку файла, загруженную пользователем.
Хотя более быстрое решение состоит в том, чтобы просто получить загрузку с выполнением PHP и напрямую вызвать процесс Tika из того же сценария (или, по крайней мере, с той же машины).
В противном случае вам нужен скрипт, который:
Как я подчеркнул, будет намного больше накладных расходов, так же как и связь между двумя серверами; и это не желательно, когда файл для анализа, может быть, 35 МБ PDF-файл, не так ли?
Пользователь должен будет ждать, скажем, 2 минуты для загрузки, PLUS другие, скажем, 20 секунд, чтобы отправить файл в Тика сервер, а затем другие, скажем, 3 секунды, чтобы получить результат анализа в текстовом формате.
Я настоятельно рекомендую остаться и работать на том же PHP сервер.