Есть одно полезное решение.
Отправка PHPSESSID на другой сервер не имеет смысла, поскольку данные сеанса хранятся в файле на сервере, и именно поэтому file_get_contents блокирует службу http. Это просто. Клиент подключается к серверу, используя http, и сервер, конечно, открывает файл с данными сеанса для записи. file_get_contents создает другое соединение (другой поток), которое соединяется с тем же сервером. Если идентификатор сеанса установлен, то сервер открывает тот же файл с данными сеанса, но этот файл уже открыт.
так что вот хорошее решение, которое предотвращает это столкновение:
$opts = array( 'http'=>array( 'method'=>"GET",
'header'=>"Accept-language: en\r\n" .
"Cookie: ".session_name()."=".session_id()."\r\n" ) );
$context = stream_context_create($opts);
session_write_close(); // this is the key
$obsah = file_get_contents( 'http://blablabla.cz', false, $context);
работает нормально. Да да да