2016-08-20 1 views
-2

NOTE: Je devrais ajouter que je ne pêche pas pour une solution cURL. Je connais et fais déjà cURL. Je veux voir ce qui se passe dans mon expérience avec une fonction http.PHP 7 copié php_http.dll en php/ext/ne fonctionne pas?

Je suis en cours d'exécution PHP 7 à partir d'une installation XAMPP à:

C: xampp \ php

J'ai téléchargé Windows pecl-5.2.6-Win32.zip, qui était plein de fichiers .dll , puis j'ai copié le fichier php_http.dll dans mon dossier php \ ext, où tous les autres fichiers .dll ont été trouvés.

J'ai édité mon php.ini et ajouté la ligne extension=php_http.dll dans l'ordre alphabétique de toutes les autres extensions (comme si cela faisait une différence).

Ensuite, j'ai redémarré Apache, et essayé d'effectuer un $response = http_get($url); mais obtenir l'erreur "Appel à la fonction indéfinie http_get()".

On dirait que je fais toutes les étapes, mais les fonctions http ne fonctionnent tout simplement pas. De plus, j'ai regardé mon phpinfo() et je ne vois aucune référence à une extension PECL.

MISE À JOUR: J'ai lu dans un autre forum un problème similaire, où cette ligne a été trouvé dans le error.log Apache:

C:\xampp\php\ext\php_http.dll' - The specified module could not be found.

L'individu a dit qu'il déclassé sa version php, puis répéter les étapes et ça a marché.

Hier soir, j'ai rétrogradé de PHP 7 à PHP 5.6. Je répétais la copie .dll/ext, php_http.dll activé dans php.ini, puis obtenu une autre erreur:

HP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_http.dll' - %1 is not a valid Win32 application.\r\n in Unknown on line 0

J'ai trouvé ces Windows http extensions, copié à nouveau le fichier .dll, redémarré Apache, mais maintenant Je suis de retour à

PHP Warning: PHP Startup: Unable to load dynamic library 'C:\xampp\php\ext\php_http.dll' - The specified module could not be found.\r\n in Unknown on line 0

Répondre

1

Au lieu de faire tellement de changements, vous auriez pu simplement utiliser curl et obtenir le même résultat. La référence à PECL sur http_get a été supprimée. Cette version de PECL est pour PHP 5.2.x. Quelle version de php vous utilisez? Au lieu de cela, vous pouvez utiliser cette fonction

function url_get($url) 
{ 
    $ch = curl_init(); // initialize curl handle 
    curl_setopt($ch, CURLOPT_URL,$url); // set url to post 
    curl_setopt($ch, CURLOPT_FAILONERROR, 1); 
    curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);// allow redirects 
    curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); // return into a variable 
    curl_setopt($ch, CURLOPT_TIMEOUT, 10); // times out after 10s 
    $urlcontent = curl_exec($ch); 
    curl_close($ch); 
    return($urlcontent); 
} 
$url = "example.com"; 
url_get($url); 
+0

J'ai beaucoup utilisé cURL pour ce projet. Je ne demande pas de solution cURL. Je veux voir ce qui se passe avec une fonction http. – TARKUS

+0

@InfiniteLoop Si vous avez lu ma réponse, j'ai déjà indiqué que cela fonctionne dans php 5.2.x. Mais je ne sais pas quelle version de PHP vous essayez? –

+0

Ah, désolé. Je suis revenu de PHP 7 (ne semble pas être un PECL pour 7) à PHP 5.6. Toujours obtenir 'Impossible de charger la bibliothèque dynamique 'C: \ xampp \ php \ ext \ php_http.dll' - Le module spécifié n'a pas pu être trouvé.' erreur. L'extension semble être faite pour cette version. Je pourrais devoir continuer à revenir aux versions précédentes de PHP jusqu'à ce que l'on travaille? – TARKUS