Je recherche le moyen le plus rapide et le plus simple de proxy une page dans PHP. Je ne veux pas que l'utilisateur soit redirigé, je veux juste que mon script ramène le même contenu, le même contenu, le même code de réponse et les en-têtes comme une autre URL distante. P>
3 Réponses :
La première réponse était un peu courte, et je ne crois pas que cela gérera des en-têtes comme vous le souhaitez. P> Cependant, vous pouvez aussi faire cela: p> écho fichier_get_contents ("proxype"); code>
Cela fonctionnerait-il?
function get_proxy_site_page( $url )
{
$options = [
CURLOPT_RETURNTRANSFER => true, // return web page
CURLOPT_HEADER => true, // return headers
CURLOPT_FOLLOWLOCATION => true, // follow redirects
CURLOPT_ENCODING => "", // handle all encodings
CURLOPT_AUTOREFERER => true, // set referer on redirect
CURLOPT_CONNECTTIMEOUT => 120, // timeout on connect
CURLOPT_TIMEOUT => 120, // timeout on response
CURLOPT_MAXREDIRS => 10, // stop after 10 redirects
];
$ch = curl_init($url);
curl_setopt_array($ch, $options);
$remoteSite = curl_exec($ch);
$header = curl_getinfo($ch);
curl_close($ch);
$header['content'] = $remoteSite;
return $header;
}
Utilisez tous les jours mais pas curl. Il sux dans la mise en œuvre actuellement
Vous pouvez obtenir le code HTML de la page suivante avec CURL, puis echo la réponse. P>
Vous pouvez utiliser les fonctions PHP Curl pour atteindre cette fonctionnalité:
http: //www.php. net / curl p> à partir de ce point, vous saisiriez les informations d'en-tête de réponse à l'aide de http://www.php.net/curl-getinfo . (Il y a plusieurs valeurs que vous pouvez saisir, tous répertoriés dans la documentation). P> Assurez-vous de fermer la poignée de courbure. P> // close cURL resource, and free up system resources
curl_close($ch);
Typo pour curlopt_returnTransfert. Cependant, cela semble imprimer les en-têtes HTTP dans le corps de la réponse.
Essayez de changer de curlopt_header vers 0 (j'ai édité le code) pour empêcher les en-têtes d'être émis.
Pouvons-nous avoir plus de détails, je veux dire, que si le code de réponse réel de l'URL distante doit être consulté est 302? Si le script gère la redirection ou simplement passer le code d'état avec la nouvelle URL?
Idéalement, cela rendrait quelque chose de 100% identique comme si vous vous rendiez à l'URL d'origine. Pour mon projet, je n'ai pas vraiment besoin de beaucoup de détails et que le fichier_get_contents semble faire le travail. Mais je pense toujours que c'est une question intéressante