PHP - curl ganz simpel / Anfaengerfrage

hoxton

Neu angemeldet
Registriert
16 Dez. 2014
Beiträge
23
Hey ngb,

seit einer Stunde suche ich verzweifelt nach einem ganz einfachem curl-Beispiel, kann aber keines finden.

Ich moechte einfach nur $data1 via curl als POST an $url senden. Zu curl finde ich >9000 Ergebnisse, aber eben nicht genau dieses einfache Beispiel.

Mag mir da bitte jemand aushelfen? Ihr muesst es mir nicht vorkauen, ein kleiner Hinweis sollte mir schon ausreichen. Vllt. bin ich einfach zu bloed, die (ein Beispiel) zu deuten.

Sorry, danke und Gruss
hoxton ;)
 


Beschreibe dein Problem genauer. "Es geht nicht", "Wie?!??" kann man nicht beantworten, wenn man nicht weiß, wo es bei dir hakt.
 
  • Thread Starter Thread Starter
  • #3
Danke, dass Du die Google-Suche verlinkt hast. Da hab ich ja noch gar nicht dran gedacht. Genau aus diesem Grund hatte ich ja ein Ergebnis verlinkt, welches ich zwar gefunden aber nicht verstanden habe. ;)

Es hakt am allgemeinen Verstaentniss. Die gefundenen Beispiele haben einfach zu viele - fuer mich - unverstaendliche Variablen. :confused:
 
Hast du dir schon mal angeschaut?
Da ist eigentlich alles gut Erklärt, zumindest für mich als PHP-Laie sieht das garnicht kompliziert aus.

[src=php]$ch = curl_init();
$result = curl_exec($ch);
curl_close($ch);[/src]
Sollte eigentlich selbsterklärend sein.
 
Ein ähnliches Problem hatte ich neulich auch (bzw. da eine spezielle Sache noch nicht funktioniert habe ich immer noch), am verständlichsten fand ich es tatsächlich auf dieser Seite:

Stichwort: Postfields

Mich hat der Name der Seite erst etwas abschreckt da ich zuerst an Scriptkiddies denken musste, aber das scheint wohl nicht der Fall zu sein, sieht jedenfalls sehr übersichtlich und strukturiert aus. (Sollte man von einer Seite die einen Websprachen beibringt aber eigentlich auch erwarten :D)
 
[src=php]<?php
// erzeuge einen neuen cURL-Handle
$ch = curl_init();

// setze die URL und andere Optionen
curl_setopt($ch, CURLOPT_URL, "http://www.example.com/"); // resource
curl_setopt($ch, CURLOPT_HEADER, 0); // header
curl_setopt($ch, CURLOPT_POST, true); // POST
curl_setopt($ch, CURLOPT_POSTFIELDS, "para1=val1&para2=val2"); // data

// führe die Aktion aus und gib die Daten an den Browser weiter
curl_exec($ch);

// schließe den cURL-Handle und gib die Systemresourcen frei
curl_close($ch);
?>[/src]

Quellen:




Muss echt schwer sein google zu bedienen oder php.net.
Der Großteil wird bereits auf der curl_exec als Beispiel gegeben, den Rest kann man unter curl_setopt nachschauen.
 
Die Überschrift passt..

Kurze Frage:

Ist es möglich die curl-Session aufzurufen, eine bestimmte Zeit zu warten und dann erst auszugeben?
Mein Problem ist, dass beide Schritte in einen Befehl realisiert werden.
Quasi eine Pause in "curl_exec"
 
Die einfachste Möglichkeit wäre, die Option CURLOPT_RETURNTRANSFER zu setzen, die Antwort in eine Variable zu schreiben und dann zu warten, bevor zu die zurückgelieferten Daten ausgibst. Bei Requests mit sehr grossen Antworten wird sich dadurch jedoch der Speicherbedarf deines Skripts signifikant erhöhen. Eine weitere Möglichkeit wäre, eine eigene Funktion zur Ausgabe zu implementieren (und als CURLOPT_WRITEFUNCTION festzulegen), welche vor der ersten Aufgabe die von dir festgelegte Zeit abwartet.

Allerdings stellt sich mir die Frage, was du damit erreichen möchtest. Mutmasslich existiert eine einfachere Lösung, serverzeitige künstliche Wartezeiten sind im Allgemeinen eine sehr unschöne Lösung, weil u.U. Timeouts oder Skriptabbrüche aufgrund eines überschrittenen PHP-Zeitlimits (max_execution_time) die Folge sind.
 
Allerdings stellt sich mir die Frage, was du damit erreichen möchtest.

Ich habe eine Seite welche fertig geladen ist, sich im Nachhinein aber noch Informationen sucht und über js aktualisiert.
Wenn ich die Seite sofort ausgeben lasse, steht überall "loading", deshalb möchte ich 5s nach dem Aufruf warten und die Seite dann erst abspeichern und ausgeben.
 
Ich habe eine Seite welche fertig geladen ist, sich im Nachhinein aber noch Informationen sucht und über js aktualisiert.
Wenn ich die Seite sofort ausgeben lasse, steht überall "loading", deshalb möchte ich 5s nach dem Aufruf warten und die Seite dann erst abspeichern und ausgeben.
Daran wird allerdings die Verzögerung nichts ändern, da das Laden per JavaScript clientseitig erfolgt und deshalb erst beginnt, wenn die Seite an den Browser ausgeliefert wurde. Die Verzögerung führt lediglich zu einem (5s) länger dauernden Seitenaufbau.
 
Ok danke, dann fällt curl schonmal weg,
dann informiere ich mich mal zu phantomJS & Co.
 
Zurück
Oben