Im WWWReader ein Cookie hinterlegen

Hallo zusammen,

pünktlich zum neuen Jahr müssen alle Anbieter natürlich schnell mal ein paar kleine Änderungen an ihren Webseiten durchführen und man darf sich dann wieder mit der Anpassung der Scripte befassen die darauf zugreifen :p.

In meinem Fall habe ich bisher immer per WWWReader die Abfahrtszeiten unserer U-Bahn vorm Haus ausgelesen, durch den Parser und ein Script gejagt und dann ins Webfront integriert. Beispielink zu Abfahrtszeiten (Auswahl „herkömmliche Mobiltelefone“)

Jetzt kommt man leider nicht mehr direkt zur Liste sondern muss erst durch eine Abfrage „Version für moderne Smartphones“ oder „Version für herkömmliche Mobiltelefone“ die dann ein entsprechendes Cookie setzt. Ist das Cookie einmal im Browser funktioniert wieder alles wie vorher. Leider weiß ich nicht wie ich dieser WWWReader-Browser-Instanz einen Cookie verpassen kann:confused:

Hat da jemand eine Idee für mich? Danke schonmal;)

Das ist leider nicht möglich. Dir bleibt nicht viel mehr Möglich als auf cURL auszuweich.

paresy

Hallo zusammen,

Ich habe es nun auf CURL umgestellt, was soweit auch funktioniert. Leider hat mein Script die schlechte Angewohnheit auch mal hängen zu bleiben, nach und nach alle Threads zu blockieren und IPS damit zum Stillstand zu bringen.
Ich erhalte eine Fehlermeldung für die letzte Zeile „Maximum execution time of 180 seconds exceeded“.

Ähnlich dem PHP-SNMP-Problem, es klappt 100mal gut und dann hängts einfach mal und der Thread ist für immer belegt.
Wie kann ich sowas unterbinden? Jemand eine Idee?

 $ch = curl_init("http://mobil.vvs.de/mobile/XSLT_DM_REQUEST?deleteAssignedStops_dm=1&stateless=1&ptOptionsActive=1&itdLPxx_routeType=&itdLPxx_changeSpeed=&excludedMeans=checkbox&useRealtime=1&useAllStops=1&maxAssignedStops=1&itOptionsActive=1&trITMOTvalue100=5&itdLPxx_dest=&sessionID=0&language=de&locationServerActive=1&mode=direct&limit=80&itdLPxx_script=true&name_dm=5006169&type_dm=any");
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_COOKIE,"vvsMobilePref=mobile3");
 $data=curl_exec($ch);

Ok, ist gelöst:rolleyes:.

Falls jemand auch mal dieses Problem haben sollte, die Lösung heißt:

curl_setopt($ch, CURLOPT_TIMEOUT, 5);

Scheinbar gibt es bei CURL keinen Default-TimeOut, so dass es passieren kann, dass eine Anfrage offen bleibt. Diese Anfrage lässt dann das PHP-Script auch gleich für unbestimmte Zeit hängen. 10 offene Anfragen dieser Art und IPS steht im Wald:o

Naja, so funktioniert es ja jetzt.

Grüße
Mark