php socket
Stefan
29/11/2006 22:44:00Ik connect via sockets naar een site die alleen een image output
als ik dit echo krijg ik dus de binary code, maar om het geldig op te slaan als .PNG moet ik de header en footer strippen, hoe doe ik dat?
als ik dit echo krijg ik dus de binary code, maar om het geldig op te slaan als .PNG moet ik de header en footer strippen, hoe doe ik dat?
PHP hulp
21/11/2024 22:42:02Jelmer -
30/11/2006 08:42:00Door alles wat je uit je socket leest op te slaan in een variabele, vervolgens te kijken of deze de eerste dubbele enter bevat (lett: \r\n\r\n) en indien ja, dan ben je voorbij het header-gebeuren. Vervolgens kan je dan gewoon de rest weer naar een ander bestand schrijven.
Zie ook dit script, remote copy, dat doet wat jij wilt maken.
Zie ook dit script, remote copy, dat doet wat jij wilt maken.
Stefan
30/11/2006 18:28:00Dit doe ik nu
ALS output van $sImage krijg ik het volgende :
"HTTP/1.1 200 OK
Date: Thu, 30 Nov 2006 17:40:02 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: image/png
4e53
ëPNG
gevolgd door de hele binairy code----------
-------
en afsluitend met:
0"
hoe kan ik dan het beste die $sImage strippen zodat het geldig png word:)
zonder die header en die 0" onderaan hoort er ook niet bij lijkt me
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
<?php
$sPage = "/image.php";
#image id
preg_match ( '/\/link\-to\-this\/\?id\=([0-9]+)/', $sPage, $aMatch );
#request the image
$this->requestPage ( $aMatch[0] );
#content
$sImage = $this->readSocket() ;
//dit zit allemaal in een class
##READSOCKET###
#read socket
function readSocket () {
$sOut = '';
while ( ! feof ( $this->fSock ) )
$sOut .= fread ( $this->fSock, 1024 );
#close socket
fclose ( $this->fSock );
#return
return $sOut;
}
?>
$sPage = "/image.php";
#image id
preg_match ( '/\/link\-to\-this\/\?id\=([0-9]+)/', $sPage, $aMatch );
#request the image
$this->requestPage ( $aMatch[0] );
#content
$sImage = $this->readSocket() ;
//dit zit allemaal in een class
##READSOCKET###
#read socket
function readSocket () {
$sOut = '';
while ( ! feof ( $this->fSock ) )
$sOut .= fread ( $this->fSock, 1024 );
#close socket
fclose ( $this->fSock );
#return
return $sOut;
}
?>
ALS output van $sImage krijg ik het volgende :
"HTTP/1.1 200 OK
Date: Thu, 30 Nov 2006 17:40:02 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Connection: close
Transfer-Encoding: chunked
Content-Type: image/png
4e53
ëPNG
gevolgd door de hele binairy code----------
-------
en afsluitend met:
0"
hoe kan ik dan het beste die $sImage strippen zodat het geldig png word:)
zonder die header en die 0" onderaan hoort er ook niet bij lijkt me
Gewijzigd op 01/01/1970 01:00:00 door Stefan