septembre
2009
En formation nous possédons un proxy. Problème lorsqu’on tente un accès réseau quelconque (file_get_contents() par exemple).
La solution consiste à utiliser le gestionnaire de flux de PHP et ses contextes, pour passer outre :
'http'=>array('proxy' => 'tcp://adresse-proxy:port', 'request_fulluri' => true)));
$file = file_get_contents('http://foo/bar', null, $context);
Mieux encore, tous les appels libxml (comme un DomDocument::Load(‘http://’)) peuvent utiliser ces contexte grâce à
libxml_set_streams_context($context);
Géant, ce sont tous les appels internes de la libxml qui utilisent le proxy, y compris la récupération des DTDs ou des Doctype pour valider ses documents :
$context = stream_context_create(array(
'http'=>array('proxy' => 'tcp://192.168.1.2:8080', 'request_fulluri' => true)));
libxml_set_streams_context($context);
libxml_use_internal_errors(true);
$dom = new DomDocument;
$dom->validateOnParse = true;
$dom->load("http://foo.com/bar/baz");
if (count(libxml_get_errors()) > 0) {
exit('Erreur de parsing XML ou de DTD');
}
Adorable PHP va !
Pour ceux qui ne maitrisent pas les flux et les contextes, je suis en train de réflechir à un bon tutoriel les concernant. C’est un concept génial que je compte bien partager ^^
1 Commentaire + Ajouter un commentaire
Commentaires récents
Archives
- novembre 2010
- août 2010
- juillet 2010
- juin 2010
- mai 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
- décembre 2008
- novembre 2008
- octobre 2008
- septembre 2008
- août 2008
- juillet 2008
- juin 2008
- mai 2008
- avril 2008
- mars 2008
- février 2008
- janvier 2008
- décembre 2007
- novembre 2007
- octobre 2007
- septembre 2007
- août 2007
- juillet 2007
- juin 2007
- mai 2007
- avril 2007
- mars 2007
- février 2007
Appréciant vos tutoriels (et un brin flatteur), j’attends avec impatience celui sur les flux !