bonjour a tous,
je dois requeter un serveur pour obtenir une image.
ensuite, je modifie les entetes envoyé au client avec
seulement, le serveur que je requete, me renvoie http 200 OK ( c'est normal )
Code : Sélectionner tout - Visualiser dans une fenêtre à part header("Content-type image/gif");
voici le code :
juste avant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 function getMapBin() { $url=$this->generateMapResult['url']; $toSplit=strpos($url,'/',8); $domain=str_replace('http://','',substr($url,'0',$toSplit)); $leReste=substr($url,$toSplit,strlen($url)); /*echo $domain; echo '<br />'.$leReste.'<br />'; echo $toSplit;*/ $sock = fsockopen ($domain, 80, &$errno, &$errstr, 30); if (!$sock) { die('erreur :<br />'.$errno.$errstr); }else{ $content=''; fputs ($sock, "GET $leReste HTTP/1.0\r\n\r\n"); while (!feof($sock)) { $content.=fgets ($sock,128); } echo $content; } fclose ($sock); }
j'ai essayé ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part echo $content;
mais ça ne remplace rien...
Code : Sélectionner tout - Visualiser dans une fenêtre à part $content=preg_replace("!(([a-z]+\r\n)*([a-z]+\r\n\r\n){1})(.*)!i","$2",$content);
pour le masque, le pourquoi du comment:
je suis parti du principe que chaque reponse http etait de la forme suivante :
exepté la derniere, avant les données :[a-z]+\r\n
ce qui donne le masque suivant :[a-z]+\r\n\r\n
merci d'avance([a-z]+\r\n)*([a-z]+\r\n\r\n){1})(.*)
EDIT:
j'ai rajouté les chiffres dans le masque, mais rien n'y fais
( donc nouveau masque : (([a-z0-9]+\r\n)*([a-z0-9]+\r\n\r\n){1})(.*) )
EDIT 2:
exemple de reponse que je reçois :
HTTP/1.1 200 OK
Date: Tue, 20 Dec 2005 16:49:50 GMT
Server: mapserver/1.6.12
Content-Type: image/gif
Connection: close
Partager