[PHP] kan plaatje niet van site laden, IE kan het wel

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik zit met een vreemd php probleem

Ik bouw een applicatie waarmee ik heel snel ,heel veel plaatjes kan viewen. onder andere Van verschillende foto stock sites en google. Een paar honderd per pagina. Zodat je niet steeds op next hoeft te drukken.

Nu lukt het wel om plaatjes van heel veel verschillende sites weer te geven. Maar ik heb problemen met 1 site:
www.istockpro.com

hiervan krijg ik maar maar 1/4 van het plaatje te zien(rechts). Als ik hem opvraag met internet explorer dan laad hij hem helemaal(links).

bijvoorbeeld:
deze link:
http://www.istockpro.com/...ize=S&xpixels=0&ypixels=0

Dus voor de duidelijkheid:
Afbeeldingslocatie: http://www.istockpro.com/file_inspector_view.php?id=18218&size=S&xpixels=0&ypixels=0Afbeeldingslocatie: http://arnoud.speedxs.nl/img.jpg


op de volgende manier lees ik mijn plaatjes in:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<?
//retrieve image from site
$picturl='http://www.istockpro.com/file_inspector_view.php?id=18218&size=S&xpixels=0&ypixels=0';

$handle = @fopen ($picturl, "rb");
$contents = "";
do {
    $data = @fread($handle, 8192);
    if (strlen($data) == 0) {
        break;
    }
    $contents.= $data;
} while(true);
@fclose ($handle);

echo $contents;
?>


deze code kan gewoon aangeroepen worden als een plaatje. dus: [img]"retrieveimg.php"[/img]

Hoe kan het dat internet explorer iets anders laat zien dan php?

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Firefox laat ook maar 1/4 zien, en als ik je link apart open krijg ik gewoon lekker de binaire file data voor m'n kiezen ..

IE is niet zo kritisch met dit soort zaken volgens mij .. Misschien geeft istock niet aan wat het content type is, waardoor php en firefox het niet snappen?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Misschien, Zoals je misschien bij firefox kunt zien, is het einde wel leesbaar:
HTML:
1
2
<br />
<b>Warning</b>:  3 is not a valid Image resource in <b>/istock/istockpro.com/htdocs/file_inspector_view.php</b> on line <b>149</b><br />


Maar op 1 of andere manier leest internet explorer door, of krijgt andere informatie dan PHP. de Data van het plaatje gaat gewoon niet verder als een 1/4. Bij internet explorer gaat hij wel gewoon helemaal tot 100 % en laat dan ook de melding zien.

Acties:
  • 0 Henk 'm!

  • PhoeniX-
  • Registratie: Juni 2000
  • Laatst online: 01-09 10:26
Humz, vreemd!

Ik zie de foutmelding nu ook staan idd. Misschien gewoon even die site mailen met de melding? Misschien is jouw probleem wel opgelost als de foutmelding weg is :)

Acties:
  • 0 Henk 'm!

  • DukeBox
  • Registratie: April 2000
  • Laatst online: 20:43

DukeBox

loves wheat smoothies

Je kan eens proberen door als header mee te sturen alsof je een IE browser bent, misschien zit er een anti lurk beveiliging op.

Duct tape can't fix stupid, but it can muffle the sound.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

DukeBox schreef op 17 maart 2004 @ 15:25:
Je kan eens proberen door als header mee te sturen alsof je een IE browser bent, misschien zit er een anti lurk beveiliging op.
Heeft weinig zin. Ik zit hier ook in IE en zie hier 2x een 1/4 plaatje staan... Doen het dus allebei niet...

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ook bij het ombouwen van de functie en het plaatje verkrijgen met een get functie levert het zelfde op:
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?
$fp = fsockopen("www.istockpro.com", 80, $errno, $errstr, 30);
if (!$fp) {
   //echo "$errstr ($errno)<br />\n";
} else {
   $out = "GET /file_inspector_view.php?id=18218&size=S&xpixels=0&ypixels=0 HTTP/1.1\r\n";
   $out .= "Host: www.istockpro.com\r\n";
   $out .= "Connection: Close\r\n\r\n";

   fputs($fp, $out);
   while (!feof($fp)) {
       $content .=fread($fp, 8192);
   }
   fclose($fp);
}

//header(substr($content,0,strpos($content,"\r\n\r\n")));
//header('Content-Type: image/jpeg');

$content=substr($content,strpos($content,"\r\n\r\n")+9);  //9 = offset for file start
echo $content;

?>


Ook met header (eigen header en php header) werkt het niet.
Pagina: 1