bonjour a tous voila donc j'ai un problème avec curl en php
j'aimerais renvoyer un fichier distant sans sauvegarder le fichier en question sur le serveur
je précise également que pour pouvoir télécharger le fichier il faut plusieurs cookies
que je ne peut pas transmettre au client pour des raison de sécurité
ce qui veut dire que je ne peux pas faire de redirection en header location
j'aimerais que ce fichier soit renvoyer par curl un peux comme un mode proxy
j’insiste également sur le faite que je ne veux en aucun cas que celui ci soit enregistrez sur le serveur
je précise également dans le code d'exemple ci dessous j'ai indiquer un fichier mp4
mais l’extension, la taille du fichier ect
dépendront de la requête qui aura était faite par le client
$url = "https://example.com/video.mp4";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch,CURLOPT_COOKIE, "cookie1=resultcookie1; cookie2=resultcookie2; cookie3=resultcookie3;");
$res = curl_exec($ch);
curl_close($ch);
echo $res;
même en renvoyant les headers au client sa ne change rien
j'ai soit une page blanche soit une page qui tourne dans le vide
je sait qu'il est tout a fait possible de faire ce type de requête mais je n'arrive pas a trouver comment
avec récupération auto des headers
$url = "https://example.com/video.mp4";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:48.0) Gecko/20100101 Firefox/48.0");
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch,CURLOPT_COOKIE, "cookie1=resultcookie1; cookie2=resultcookie2; cookie3=resultcookie3;");
$res = curl_exec($ch);
curl_close($ch);
list($headers, $body) = explode("\r\n\r\n", $res, 2);
$headers = explode("\r\n", $headers);
$hs = array();
foreach($headers as $header)
{
if( false !== strpos($header, ':') )
{
list($h, $v) = explode(':', $header);
$hs[$h][] = $v;
}
else
{
$header1 = $header;
}
}
list($proto, $code, $text) = explode(' ', $header1);
header($_SERVER['SERVER_PROTOCOL'] . ' ' . $code . ' ' . $text);
foreach($proxied_headers as $hname)
{
if( isset($hs[$hname]) )
{
foreach( $hs[$hname] as $v )
{
if( $hname === 'Set-Cookie' )
{
header($hname.": " . $v, false);
}
else
{
header($hname.": " . $v);
}
}
}
}
die($body);
mon php.ini
voir sur pastebin
http://pastebin.com/B7Zmdd1a car trop de caractère
les dépandance coté serveur apache2 php5 php5-curl
avec un vardump après 10 minutes d'attentes j'obtient
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 133959198 bytes) in /var/www/html/test.php on line 11
lol la ligne 11 c'est
$res = curl_exec($ch);
lien de test
http://51.254.139.53/test.php
quelle qu'un aurait il la solution svp merci