Передать http post и сделать скриншот
Есть данные в ассоциативном массиве, вида
$data
lname=>***
fname=>***
mname=>***
docseries=>***
docnumber=>***
Нужно передать http запрос серверу и сделать скриншот той страницы, которую отдаст сервер. Не понимаю, как это сделать.
Попытался curl'ом отдать ему данные
$myCurl = curl_init();
curl_setopt_array($myCurl, array(
CURLOPT_URL => 'https://123123123.action',
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POST => true,
CURLOPT_POSTFIELDS => http_build_query($DATA)
));
$response = curl_exec($myCurl);
curl_close($myCurl);
$telegram->sendMessage([ 'chat_id' => $chat, 'text' => $response ]);
На условно https://123123123.action передаются данные post методом с другой страницы. Я пытаюсь это реализовать через своего бота в телеграм.
В ответ на этот запрос curl я получаю бесконечные ответы
lname=>***
fname=>***
mname=>***
docseries=>***
docnumber=>***
Почему? Как это исправить? Спасибо
Ответы (2 шт):
Автор решения: Azmandios
→ Ссылка
Лучше попробовать через PhantomJS (или форк CapserJS)
У них даже в базовом примере (читай hello world) есть данный функционал
Автор решения: Tip
→ Ссылка
В итоге отправил GET, но серверу все. Скриншот генерировал сервис
Функция:
function SiteScreenshot($url, $chat, $resolution='1720x1080', $size='1920', $format='png') {
$Filename = $chat.".jpg";
// Директория где лежат скрины
$ScreenshotDirectory = "screens/";
// Проверяем если есть такой файл в папке скринов
$Image = @file_get_contents("http://mini.s-shot.ru/".$resolution."/".$size."/".$format."/?".$url);
$OpenFile = fopen($ScreenshotDirectory.$Filename, "w+");
// Сохраняем изображение
$Write = fwrite($OpenFile, $Image);
return $ScreenshotDirectory.$Filename;
}
И сам обработчик
$site = "http://example.com?".$string;
SiteScreenshot($site,$chat);
$path_to_photo = "https://domen.ru/screens/";