nginx + php 7 + filter_input + Homestead

J'ai besoin de valider l'URL, puis le code suivant fonctionne parfaitement avec php et apache:

$url = filter_input(INPUT_GET, 'url', FILTER_SANITIZE_URL) 

Exemple: avec cette URL: plantilla_mvc.net//////controlador/metodo/////argumentos

il se transforme en: / controlador / metodo / argumentos ( sans ////// )

MAIS avec nginx il ne fonctionne pas .

Ensuite, j'ai essayé:

$ url = filter_input (INPUT_SERVER, 'REQUEST_URI', FILTER_SANITIZE_URL);

Mais filter_input NE TROUVE PAS avec INPUT_SERVER

Comment puis-je résoudre ce problème??

Merci de votre aide

On dirait un problème connu, voir https://github.com/xwp/stream/issues/254

En raison d'un bug confirmé par PHP, filter_input (INPUT_SERVER, 'anything') renverrait nulle sur certaines implémentations de FCGI / PHP 5.4 (et probablement d'anciennes versions aussi). https://bugs.php.net/bug.php?id=49184

Utilisez la solution de contournement mentionnée dans https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=730094 :

 if (filter_has_var(INPUT_SERVER, "SERVER_NAME")) { $servername = filter_input(INPUT_SERVER, "SERVER_NAME", FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE); } else { if (isset($_SERVER["SERVER_NAME"])) $servername = filter_var($_SERVER["SERVER_NAME"], FILTER_UNSAFE_RAW, FILTER_NULL_ON_FAILURE); else $servername = null; }