besogonskiy
@besogonskiy

Можно ли получить файл по URL в РНР? Нужно ли для этого писать модуль на другом языке?

бэкэнд сайта написан на php. Хочется функцию получения файла написать по url реализовать на каком-нибудь более низкоуровневым языке программирования. Куда копать ? Например, на С++ или на Java написать модуль, который бы получал файл и возвращал соответствующие ошибки в случае их возникновения и использовать это внутри php или не на java - на чем можно еще? желательно комилируемый язык программирования, чтоб под linux это работало.
  • Вопрос задан
  • 154 просмотра
Пригласить эксперта
Ответы на вопрос 2
@rPman
php имеет штатный инструмент работы с файлами по ссылкам http/ftp во всех своих методах типа fopen или file_get_contents

Протоколов много, можно регистрировать собственные

Расширения для php пишут на c и с++, вы конечно можете извратиться и писать на любом другом языке, главное чтобы он был компилируемый, но работа эта бессмысленно сложная
Ответ написан
2ord
@2ord
продвинутый чайник
Используйте микросервисную архитектуру. Тогда можно отправить URL в очередь сообщений, потребителем которой может являться программа на любом языке программирования: Go, Java, C#, ... что хочешь. Хоть язык Nim.
При получении URL (в JSON) программа скачает документ, распарсит или что задумаешь. Результат поместит куда необходимо: в другую очередь, СУБД, файл или другое.
В случае ошибки можно отправить JSON в очередь ошибок, которую может "прослушивать" программа на PHP или любая другая.
Это асинхронная модель обработки данных.

Альтернативный вариант, который часто используют в монолитном ПО - делают системный вызов внешнего процесса: gzip, ffmpeg, ... и получают вывод код ошибки и, если необходимо, stdout.
В данном случае, синхронная модель обработки данных. Получение результата блокируется вызываемым процессом и пока он не завершится, PHP будет удерживать открытое HTTP соединение.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы
20 апр. 2021, в 12:39
30000 руб./за проект
20 апр. 2021, в 12:38
5000 руб./за проект
20 апр. 2021, в 12:35
500 руб./в час