59 votes

Comment supprimer http, https et slash de la saisie de l'utilisateur en php ?

Exemple d'entrée utilisateur

http://domain.com/
http://domain.com/topic/
http://domain.com/topic/cars/
http://www.domain.com/topic/questions/

Je veux qu'une fonction php produise un résultat du type

domain.com
domain.com/topic/
domain.com/topic/cars/
www.domain.com/topic/questions/

Faites-moi savoir :)

5voto

minaz Points 2473

Vous pouvez supprimer à la fois https et http en une seule ligne en utilisant ereg_replace :

$url = ereg_replace("(https?)://", "", $url);

1voto

Paul Weber Points 505

Vous pouvez utiliser la fonction "parse url" de PHP. Cela fonctionnera pour tous les protocoles, même ftp:// ou https://.

Il faut ensuite récupérer le composant du protocole et le soustraire de l'URL, ou simplement concaténer les autres parties ensemble ...

http://php.net/manual/de/function.parse-url.php

0voto

OpenWebWar Points 466
<?php
// user input
$url = 'http://www.example.com/category/website/wordpress/wordpress-security/';
$url0 = 'http://www.example.com/';
$url1 = 'http://www.example.com/category/';
$url2 = 'http://www.example.com/category/website/';
$url3 = 'http://www.example.com/category/website/wordpress/';

// print_r(parse_url($url));
// echo parse_url($url, PHP_URL_PATH);

$removeprotocols = array('http://', 'https://');

echo '<br>' . str_replace($removeprotocols,"",$url0);
echo '<br>' . str_replace($removeprotocols,"",$url1);
echo '<br>' . str_replace($removeprotocols,"",$url2);
echo '<br>' . str_replace($removeprotocols,"",$url3);

?>

-2voto

iyad al aqel Points 677

Si ce sont les premiers caractères de la chaîne vous pouvez utiliser substr(0,8) , et il supprimera le premier 8ème caractère si ce n'est pas le cas, utilisez la fonction "str_replace()". http://php.net/manual/en/function.str-replace.php

-2voto

Ives.me Points 1399

J'ai trouvé ceci http://refactormycode.com/codes/598-remove-http-from-url-string

function remove_http($url = '')
{
    if ($url == 'http://' OR $url == 'https://')
    {
        return $url;
    }
    $matches = substr($url, 0, 7);
    if ($matches=='http://') 
    {
        $url = substr($url, 7);     
    }
    else
    {
        $matches = substr($url, 0, 8);
        if ($matches=='https://') 
        $url = substr($url, 8);
    }
    return $url;
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X