File_get_contents mais problème

Résolu/Fermé
Max - 9 août 2010 à 09:55
 Max - 9 août 2010 à 15:35
Bonjour,

Je cherche à charger en php via file_get_contents (ou autre) le contenu d'un page sur battle.net :
https://starcraft2.com/en-us/profile/2/1/263761

le problème c'est que j'ai droit à une redirection de publicité et donc forcement je charge le code source de la page de pub. Cela n'est pas systématique en naviguant simplement.

Sauriez vous m'aider (merci)

exemple de source

<?php

$lien="https://starcraft2.com/en-us/profile/2/1/263761";

$http_page = file_get_contents($lien);
$http_page_ = htmlspecialchars($http_page);
echo "<pre>$http_page_</pre>";

?>

2 réponses

avion-f16 Messages postés 19245 Date d'inscription dimanche 17 février 2008 Statut Contributeur Dernière intervention 20 avril 2024 4 497
9 août 2010 à 13:58
Salut.

Il va falloir utiliser cURL.
Tu devras faire une première requête, sans récupérer le résultat, mais qui enregistra les cookies dans un fichier.
La seconde requête transmettra les cookies afin de ne plus avoir la redirection : tu pourras récupérer le code source.

Voilà comment faire :
<?php
$url = "https://starcraft2.com/en-us/profile/2/1/263761";

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIEJAR, "cookies.txt");
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
curl_exec($curl);
unset($curl);

$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_COOKIEFILE, "cookies.txt");
$resultat = curl_exec($curl);

echo '<pre>'.htmlspecialchars($resultat).'</pre>';
?>

N'oublie pas de créer le fichier cookies.txt et de mettre les droits en écriture.
2
Comment dire simplement

MERCI !!!!!!!!!!

ça marche parfaitement
0