curl_exec Druckergebnisse, wenn ich nicht möchte


78

Ich verwende den folgenden Code:

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_TIMEOUT, 12); 

$result = curl_exec($ch);

curl_close ($ch);

Die Ergebnisse werden jedoch sofort gedruckt. Ist es möglich, das JSON-Ergebnis in eine Variable einzufügen, damit ich es ausdrucken kann, wenn ich möchte?


1
In dem Code, den Sie posten, sehe ich keinen Druck
Haim Evgi

6
Das ist der Punkt: Dieses Codesegment druckt die Curl-Ergebnisse, wenn ich es nicht auch frage.
Oliver Bayes-Shelton

Antworten:


173

Set CURLOPT_RETURNTRANSFEROption:

// ...
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);

$result = curl_exec($ch);

Gemäß den Dokumenten :

CURLOPT_RETURNTRANSFER- TRUEum die Übertragung als Zeichenfolge des Rückgabewerts zurückzugeben, curl_exec()anstatt sie direkt auszugeben.


2
In Ihrem verknüpften Dokument heißt es: "Ab PHP 5.1.3 hat diese Option keine Auswirkung: Die Rohausgabe wird immer zurückgegeben, wenn CURLOPT_RETURNTRANSFER verwendet wird." Ich bin mir nicht ganz sicher, ob ich das verstehe, da ich ein Mawg mit sehr wenig Gehirn bin, und ich habe immer noch das gleiche Problem wie OP
Mawg sagt, Monica

3
Dieser Hinweis in der PHP-Dokumentation bezieht sich anscheinend auf die Option CURLOPT_BINARYTRANSFER und nicht auf die Option CURLOPT_RETURNTRANSFER.
Kel


-6

Nach PHP 5.1 curlwird immer das Ergebnis angezeigt, das Sie in der Dokumentation anzeigen können. zur Vermeidung einfach verwenden

echo "< span style='display:none'>";

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $url);

curl_setopt($ch, CURLOPT_TIMEOUT, 12);

$result = curl_exec($ch);

curl_close ($ch);

echo"< /span>";

4
curlDas Verhalten ist konfigurierbar. Wenn Sie jedoch auf etwas stoßen, das nicht so konfiguriert werden kann, dass der Wert zurückgegeben wird, anstatt ihn zu drucken, sollten ob_start()Sie ihn vor und ob_get_clean()nach dem Aufruf verwenden . Der Rückgabewert von ob_get_clean()ist der Inhalt, der sonst gedruckt worden wäre. Schauen Sie sich die Dokumentation dieser Funktionen an, um mehr darüber zu erfahren. Ihre Antwort ist wirklich nicht anständig, also dachte ich, Sie könnten daraus lernen. Ich wollte dich nicht beleidigen. Viel Glück!
Tamás Barta

3
Tatsächlich besteht das Problem bei dieser Antwort (neben den Punkten, die der vorherige Kommentator erwähnt hat) darin, dass die Frage nicht beantwortet wird. Es wurde nicht erwähnt, ob es sich um eine Webanwendung handelt oder nicht. Sie können daher nicht sicher sein, wie die Ausgabe angezeigt wird (es kann sich sogar um eine Konsolenanwendung handeln).
mark.sagikazar
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.