[Gelöst] Änderungen CURL alte + neue version von XAMPP?

Irgendwelche Probleme mit XAMPP für Windows? Dann ist hier genau der richtige Ort um nachzufragen.

[Gelöst] Änderungen CURL alte + neue version von XAMPP?

Postby matthias-web » 18. August 2014 05:53

Liebe Foren-Gemeinde,

Mit dem Aufsetzen eines neuen Rechners habe ich für eine lokale PHP/MySQL-Anwendung von XAMPP 1.7.3 auf 1.8.3 umgestellt.
Da ist natürlich viel zu berücksichtigen, was ich aber nicht zum Laufen gebracht habe, ist eine Funktion, welche CURL benutzt, um eine Reihe von Bildern von einem Internet-Server (https-Adresse) herunterzuladen und lokal zu speichern.

Laut phpinfo ist CURL erfolgreich installiert, auch die Error-Logs von Apache oder PHP geben keinen Hinweis auf Fehlfunktion.
Es werden sehr viele Bilder auf einmal geladen und gespeichert.

  • Wenn ich die Internet-Adresse absichtlich ungültig mache, speichert die Routine "erfolgreich" die html-Meldung, dass das File nicht gefunden werden konnte als Bild ab.
  • Wenn die Adresse gültig ist, wird ein 0 Byte File gespeichert.
  • Ich habe beobachten können, dass *manchmal* von einer langen Liste von Bilder ein einziges erfolgreich gespeichert wurde, aber das Verhalten ist nicht reproduzierbar.
  • Ich habe auf dem neuen Rechner testweise noch mal das alte XAMPP 1.7.3 installiert, hier funktioniert alles tadellos.

Leider habe Ich den Code momentan nicht bei der Hand (wird nachgereicht sobald verfügbar), aber vielleicht weiß ja vorab schon jemand mit mehr Erfahrung als ich, was der Grund sein könnte?
Was könnte sich bezüglich CURL oder den Config-Einträgen in den Versionen geändert haben, was zu berücksichtigen wäre?

Vielen Dank für jede Hilfe!

Viele Grüße,
Matthias

--------------------------------------------------------------------------------
Update: Lösung

Ein vier Jahre alter Kommentar auf der offiziellen CURL-Seite hat die Lösung gebracht:
Anstatt wie in meinem Code
Code: Select all
curl_setopt($ch, CURLOPT_FILE, $fp);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

muss die Option "CURLOPT_RETURNTRANSFER" zuerst gesetzt werden.
Richtig ist also:
Code: Select all
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_FILE, $fp);

Dann funktioniert alles.
Warum die andere Reihenfolge in Apache 1.7.3 kein Problem darstellte, könnten uns CURL-Experten vermutlich sofort erklären.

Es hat also (wie wahrscheinlich oft bei Problemen hier ;-) ) nichts direkt mit XAMPP zu tun gehabt.
Da es aber gut sein kann, dass noch jemand anderes über dieses Problem beim Updaten von XAMPP stolpert, lasse ich Problem und Lösung hier stehen, wenn die Moderatoren einverstanden sind.

Viele liebe Grüße & herzlichen Dank für dieses tolle Projekt!
Matthias
matthias-web
 
Posts: 8
Joined: 21. February 2006 03:16

Return to XAMPP für Windows

Who is online

Users browsing this forum: wodim and 19 guests