На самом деле это возможно. Вам просто нужно взять cookie браузера и передать его в качестве параметра, чтобы свернуться, чтобы имитировать браузер.
Это похоже на сеанс джека ...
Вот пример кода:
// Init curl connection
$curl = curl_init('http://otherserver.com/');
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// You can add your GET or POST param
// Retrieving session ID
$strCookie = 'PHPSESSID=' . $_COOKIE['PHPSESSID'] . '; path=/';
// We pass the sessionid of the browser within the curl request
curl_setopt( $curl, CURLOPT_COOKIE, $strCookie );
// We receive the answer as if we were the browser
$curl_response = curl_exec($curl);
Это работает очень хорошо, если ваша цель - вызвать другой веб-сайт, но не получится, если вы вызовете свой веб-сервер (тот же, что запускает команду curl). Это потому, что ваш файл сеанса по-прежнему открыт / заблокирован этим сценарием, поэтому вызываемый вами URL не может получить к нему доступ.
Если вы хотите обойти это ограничение (вызвать страницу на том же сервере), вы должны закрыть файл сеанса с этим кодом, прежде чем выполнить curl:
$curl = curl_init('http://sameserver.com/');
//...
session_write_close();
$curl_response = curl_exec($curl);
Надеюсь, это кому-нибудь поможет:)