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 : http://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.

  1. $_url = $_GET['url'];
  2. $_nature = $_GET['nature'];
  3.  
  4. $handle = fopen($_url, "rb");
  5. $contents = '';
  6. while (!feof($handle)) {
  7.     $contents .= fread($handle, 8192);
  8. }
  9.  
  10. //gestion des entetes
  11. if ($_nature=='XML')
  12.         header("Content-type: text/xml");
  13. elseif ($_nature=='HTML')
  14.         header("Content-type: text/html");
  15.  
  16. //on affiche la page
  17. print_r($contents);
  18.  
  19. fclose($handle);
  20. ?>