Du befindest Dich im Archiv vom ABAKUS Online Marketing Forum. Hier kannst Du Dich für das Forum mit den aktuellen Beiträgen registrieren.

php fpassthru

Ajax, Hijax, Microformats, RDF, Markup, HTML, PHP, CSS, MySQL, htaccess, robots.txt, CGI, Java, Javascript usw.
Neues Thema Antworten
Anonymous

Beitrag von Anonymous » 23.01.2011, 03:49

habe folgendes programm zum externen auslesen von images

<?
ob_start();
$fp = fopen("https://images.partners.agoda.com/hotel ... 177577.jpg", "rb");

fpassthru($fp);

fclose($fp);
$file = ob_get_contents();
ob_end_clean();

$fp = fopen("./fox.jpg", "wb+");
fwrite($fp, $file);
fclose($fp);
?>

aber der inhalt der geschriebenen datei ist immer 0 aber sie wird angelegt? wer nen tip? intern funktioniert es auch wenn ich die grafik absolut anspreche.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

Content Erstellung von ABAKUS Internet Marketing
Ihre Vorteile:
  • einzigartige Texte
  • suchmaschinenoptimierte Inhalte
  • eine sinnvolle Content-Strategie
  • Beratung und Umsetzung
Jetzt anfragen: 0511 / 300325-0

Michael
PostRank 8
PostRank 8
Beiträge: 808
Registriert: 04.01.2004, 20:23
Wohnort: Herne

Beitrag von Michael » 23.01.2011, 10:24

Hi,

versuche es mal so.

Gruß
Michael

<?
header("Content-Type: image/jpg");
$url = "https://images.partners.agoda.com/hotel ... 177577.jpg";
$image = file_get_contents($url);
echo $image;
?>

Alex L.
PostRank 5
PostRank 5
Beiträge: 207
Registriert: 23.01.2011, 02:05
Wohnort: Iserlohn

Beitrag von Alex L. » 23.01.2011, 10:26

Hast du zunächst einmal gecheckt ob fopen() auf deinem Server mit externen Adressen funktioniert? Bei vielen Hostern ist fopen() entsprechend beschnitten oder gar deaktiviert.

Anzeige von ABAKUS

von Anzeige von ABAKUS »

SEO Consulting bei ABAKUS Internet Marketing
Erfahrung seit 2002
  • persönliche Betreuung
  • individuelle Beratung
  • kompetente Umsetzung

Jetzt anfragen: 0511 / 300325-0.


Anonymous

Beitrag von Anonymous » 23.01.2011, 10:39

@alex

auf meinem geht es aber versuche es ja ueber agoda

@michael

danke probiere es gleich mal

Anonymous

Beitrag von Anonymous » 23.01.2011, 11:10

@michael

er gibt mir nur den dateinamen des aufrufenden prpgrammes zurueck auch wenn ich es mit fopen mache

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 23.01.2011, 13:13

Vielleicht hilft Dir folgendes weiter:

Code: Alles auswählen

// Die Content-Type-Kopfzeile senden, in diesem Fall image/jpeg
header&#40;'Content-type&#58; image/jpeg'&#41;;

// Das Bild ausgeben
imagejpeg&#40;$im&#41;;

// Den Speicher freigeben
imagedestroy&#40;$im&#41;;
Oder:

Code: Alles auswählen

// Das Bild als 'simpletext.jpg' speichern
imagejpeg&#40;$im, 'simpletext.jpg'&#41;;

// Den Speicher freigeben
imagedestroy&#40;$im&#41;;
https://de.php.net/manual/de/function.imagejpeg.php

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 23.01.2011, 13:42

So wird das Bild bei mir angezeigt und abgespeichert. Ohne echo $file wird es bei mir nicht angezeigt, nur abgespeichert.

Code: Alles auswählen

<?php
ob_start&#40;&#41;; 
$fp = fopen&#40;"http&#58;//images.partners.agoda.com/hotels/206452/Main/Main_RoomFac_206452_3177577.jpg", "rb"&#41;;

fpassthru&#40;$fp&#41;;
fclose&#40;$fp&#41;;
$file = ob_get_contents&#40;&#41;;
ob_end_clean&#40;&#41;; 

echo $file;

$fp = fopen&#40;"./fox.jpg", "wb+"&#41;;
fwrite&#40;$fp, $file&#41;;
fclose&#40;$fp&#41;;
?> 

Anonymous

Beitrag von Anonymous » 24.01.2011, 03:54

@melegrian

das bild wird bei dir gespeichert?

bei einem meinen eigenen server ebenfalls aber bei agoda.com

Warning: fopen(https://images.partners.agoda.com/hotel ... 177577.jpg) [function.fopen]: failed to open stream: HTTP request failed! HTTP/1.0 403 Forbidden in /home/.sites/116/site1677/web/hotels/test0.php on line 3

Warning: fpassthru() expects parameter 1 to be resource, boolean given in /home/.sites/116/site1677/web/hotels/test0.php on line 5

Warning: fclose() expects parameter 1 to be resource, boolean given in /home/.sites/116/site1677/web/hotels/test0.php on line 6


das heisst die haben den zugriff eingeschränkt. aber warum bei dir nicht?

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 24.01.2011, 06:10

Da war ich gestern etwas zu vorlaut. Hatte die Scriptschnipsel nur schnell mit xampp getestet, wo das Bild sauber angezeigt und abgespeichert wurde. Heute habe ich erst einen Test bei all-inkl und bei Loswebos gemacht. Sauber gespeichert wird das Bild bei beiden Hostern ohne Probleme, angezeigt wird hingegen jeweils nur der Bildcode. Also, Speicherung - OK, direkte Ausgabe an den Bildschirm - Nein. Ja, das wird wohl an den Servereinstellungen liegen.

SloMo
PostRank 10
PostRank 10
Beiträge: 4880
Registriert: 04.01.2005, 18:26

Beitrag von SloMo » 24.01.2011, 06:19

Du musst dem Browser natürlich sagen, was für ein Content-Type das ist. Sonst wird es nicht als Bild interpretiert, sondern als Text ausgegeben. Wie Michael oben schon meinte: header("Content-Type: image/jpg") ganz am Anfang des Skripts.

Melegrian
PostRank 10
PostRank 10
Beiträge: 3170
Registriert: 30.01.2005, 12:36

Beitrag von Melegrian » 24.01.2011, 06:54

Gut, prima, wieder ein wenig dazu gelernt, jetzt wird das Bild bei beiden Hostern angezeigt und gespeichert.

Anonymous

Beitrag von Anonymous » 24.01.2011, 10:30

alles klar der provider hat fopen freigegeben aber die domains die nicht bei ihhm liegen gesperrt

Antworten