Hack for php < 5.5 : function curl_reset(&$ch){ $ch = curl_init();}
(PHP 5 >= 5.5.0, PHP 7, PHP 8)
curl_reset — Setzt alle Optionen eines libcurl-Session-Handles zurück
Diese Funktion setzt alle Optionen, die für das angegebene cURL-Handle gesetzt wurden, auf die Standardwerte zurück.
handle
Ein von curl_init() zurückgegebenes cURL-Handle.
Es wird kein Wert zurückgegeben.
Version | Beschreibung |
---|---|
8.0.0 |
handle erwartet nun eine
CurlHandle-Instanz; vorher wurde eine
Ressource erwartet.
|
Beispiel #1 curl_reset()-Beispiel
<?php
// Erstellt ein cURL-Handle
$ch = curl_init();
// Setzt die CURLOPT_USERAGENT-Option
curl_setopt($ch, CURLOPT_USERAGENT, "Mein Test-User-Agent");
// Setzt alle Optionen zurück
curl_reset($ch);
// Führt den HTTP-Request aus
curl_setopt($ch, CURLOPT_URL, 'http://example.com/');
curl_exec($ch); // the previously set user-agent will be not sent, it has been reset by curl_reset
// Schließt den Handle
curl_close($ch);
?>
Hinweis:
curl_reset() setzt außerdem die URL zurück, die in der curl_init()-Funktion gesetzt wurde.
If you're reusing a cUrl handle and want to ensure there's no residue from previous options -- but are frustrated with resetting the basics (e.g. FTP details) needed for each cURL call -- then here's an easy pattern to fix that:<?phpclass cUrlicue { protected $curl; /* Create the cURL handle */ function __construct() { $this->curl = curl_init(); $this->curl_init_opts(); curl_exec($this->curl); } /* Reload your base options */ function curl_init_opts() { $opts[CURLOPT_PROTOCOLS] = CURLPROTO_FTP; $opts[CURLOPT_RETURNTRANSFER] = true; $opts[CURLOPT_USERPWD] = 'user:pass'; //... curl_setopt_array($this->curl, $opts); } /* Use when making a new cURL call */ function curl_exec($opts) { curl_reset($this->curl); // clears all old options $this->curl_init_opts(); // sets base options again curl_setopt_array($this->curl, $opts); // sets your new options return curl_exec($this->curl); } /* Your whatever cURL method */ function curl_get_whatever() { $opts[CURLOPT_URL] = 'ftp://.../whatever'; //... $result = $this->curl_exec($opts); // ... } }?>Then: each call to $this->curl_exec() from your whatever-method resets the previous options, reloads the base options, adds in your new options, and returns the result. Otherwise, can also put your base options into a class property, instead of in-method, if there's nothing dynamic being defined. Enjoy. =^_^=