Warnung: file_put_contents(/home/www/web1/html/php_dev/test.txt) [function.file-put-contents]: failed to open stream: Permission denied in /home/www/web1/html/php_dev/sys/lib.activity.php (Zeile 58)
cUrl - Redirect zur Speicherung auslesen [Archiv] - PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr

- Ad -
php-resource




Archiv verlassen und diese Seite im Standarddesign anzeigen :
cUrl - Redirect zur Speicherung auslesen


 
Quetschi
14-12-2009, 15:14 
 
Hallo,

ist nur ein kleines, triviales Anliegen:

Ich habe eine kleine db-Tabelle mit diversen Urls die per cron einmal wöchentlich per cUrl ausgelesen werden. Hab das vor ner Ewigkeit mal ganz simpel angefangen ohne mir allzuviele Gedanken darüber zu machen.

Mit der Zeit kam es natürlich dazu, dass manche Urls nicht mehr erreichbar waren und bei doch recht vielen hat man daran gedacht, entsprechende 301er-Weiterleitungen einzurichten. Also hab ich einfach cUrl die Weiterleitungen (maximal 5) vefolgen lassen und alles war gut.

Jetzt wärs aber doch recht praktisch, wenn gleich wieder die richtige Url in die DB zurückgeschrieben werden würd und da frag ich mich, ob mein Ansatz - der mir als der einzig mögliche erscheint - so richtig ist:


Header zurückgeben lassen - damit krieg ich, soweit ich es sehe, alle Header zurück, bis cUrl am "Ziel" angelangt ist
den kompletten returnierten String anhand \r\n ausplitten
die einzelnen Array-Elementen nach HTTP/1 am Anfang durchsuchen
wenn ja, dürfte es ein HTTP-Header sein und dann im entsprechenden Block die Location falls vorhanden auslesen
Nach der Prozedur dürfte ich die neue Url "in Händen halten" und kann den DS entsprechend updaten.

Erscheint mir aufwändig aber ich find im Manual nix, dass ich ne Option setzen könnte, die mir das neue Ziel fertig frei Haus liefert oder überseh ich was?

 
wahsaga
14-12-2009, 15:54 
 
Erscheint mir aufwändig aber ich find im Manual nix, dass ich ne Option setzen könnte, die mir das neue Ziel fertig frei Haus liefert oder überseh ich was?
In der manpage cURL - How To Use (http://curl.haxx.se/docs/manpage.html) finde ich unter der Beschreibung des Parameters -w/--write-out folgende Variable:
url_effective The URL that was fetched last. This is most meaningful if you've told curl to follow location: headers.

(Ob und wie du die zur Verfügung hast, wenn du cURL nicht per commandline benutzt, müsstest du mal schauen.)

 
Quetschi
14-12-2009, 16:17 
 
Vermute mal dein Satz in der Klammer war ein Wink mit dem Zaunpfahl mal hier -> PHP: curl_getinfo - Manual (http://de3.php.net/manual/en/function.curl-getinfo.php) zu schauen, wo ich genau das bekomm was ich suche - irgendwie war ich im richtigen Haus - nur war ich zu blöd die richtige Tür zu öffnen.

Thx

- -

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:44 Uhr.