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?

Oliver Bayes-Shelton
quelle
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.

Kel
quelle
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
3

Hast du es versucht?

curl_setopt($ch, CURLOPT_VERBOSE, 0);

Das hat bei mir funktioniert!

Cesar Octavio Bibriesca
quelle
-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>";
user3443146
quelle
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