Die aktuelle Version von http
Erweiterung (der package Name ist pecl_http
) nicht http_get()
Funktion bietet. Diese Funktion wurde in Version 2.0.0 (gleich nach Version 1.7.6) entfernt. Sie können es sehen, indem Sie die folgenden Befehle im Terminal ausgeführt wird:
git clone https://github.com/m6w6/ext-http.git
cd ext-http
git diff RELEASE_1_7_6 RELEASE_2_0_0
Obwohl es nicht explizit in den changelog erwähnt wird, das Verfahren Stil komplett mit OOP Stil in der zweiten Version ersetzt wird.
Die documentation on PHP's official site ist veraltet. Der Autor von Extension hat die neue Version unter his own site gehostet. Ich würde ihm nicht viel Vorwürfe machen, da der Link zur Dokumentation über die PECL site auf den richtigen Platz zeigt. Zweifellos sollte er die alte Dokumentation von php.net/manual
entfernen oder zumindest aktualisieren.
Der neue Weg HTTP GET-Anfragen auszuführen impliziert die Verwendung von http\Client\Request
Klasse:
$request = new http\Client\Request("GET",
"http://example.com",
["User-Agent"=>"MyAgent/0.1"]
);
$request->setOptions(["timeout" => 1]);
$client = new http\Client;
$client->enqueue($request)->send();
$response = $client->getResponse();
In Bezug auf das Setup
Sie die Abhängigkeiten vorhttp.so
laden sollte, wie es in der empfohlen wird, documentation:
; obligatory deps
extension = raphf.so
extension = propro.so
; if shared deps were enabled
extension = hash.so
extension = iconv.so
extension = json.so
; finally load pecl/http
extension = http.so
Wenn Sie noch nicht sind, müssen Sie '; extension = php_http.dll' in Ihrer' php.ini' Datei aktivieren. Einfach Semikolons entfernen und danach den Apache Server neu starten. –