Dans notre « Guide complet AJAX« , nous proposons un proxy virtuel en ASP permettant de « faire croire » que les données viennent du serveur qui heberge les sources JS alors qu’elles viennent d’internet. Plus qu’un proxy, c’est juste un miroir…
Des lecteurs m’ont demandé à plusieurs reprises l’equivalent en PHP, voila le code :
L’url suivante le montre en action : https://brico-info.com/proxy.php?url=http://www.google.fr (les images ne sont pas visibles justement parce qu’elles sont en url relative)
Le parametre « nature » permet de renforcer l’entete du content-type, son utilisation est optionnelle.
-
- $_url = $_GET[‘url’];
- $_nature = $_GET[‘nature’];
-
- $contents = »;
- }
-
- //gestion des entetes
- if ($_nature==‘XML’)
- elseif ($_nature==‘HTML’)
-
- //on affiche la page
-
- ?>
Je crois que "readfile($_GET[‘url’]);" permet de faire la même chose.
Je teste
En fait readfile permet de faire la même chose dans ce contexte, puisque l’on veut juste afficher le contenu sans le stocker dans une variable, sinon, readfile n’est pas adapté.
Si tu veux stocker le résultat dans une variable, tu peux utiliser "$contents = file_get_contents($_GET[‘url’]); echo $contents;"
Une autre solution avec readfile:
ob_start();
readfile($_GET[‘url’]);
$contents = ob_get_contents();
ob_end_clean();
echo $contents;