IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Retirer certains caractères


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut Retirer certains caractères
    bonjours, je reviens solliciter votre aide,

    j'ai un formulaire sur mon site ou les visiteurs doivent entrer une URL, or j'aimerai stocker mes URLS sous ce format dans ma base de données :
    www.monsite.com

    j'aimerais que lorsque quelqu'un entre par exemple :
    http://www.monsite.com

    un test de vérification soit fait, si on détecte dans les 7 premiers caractères cette chaine http:// on la retire automatiquement.
    si dans le dernier caractère on détecte un / il soit aussi retiré automatiquement...

    j'ai trouvé une piste avec la fonction "substr" mais je n'arrives pas à l'appliquer, est-ce que quelqu'un aurait la gentillesse de m'indiquer la marche à suivre ?

    D'avance un grand merci et meilleures salutations
    Bonne journée à tous

  2. #2
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    <?php
    $domains = array('http://test.com', 'http://www.test.com', 'http://test.com/', 'http://www.test.com/', 'test.com', 'www.test.com');
    $pattern = "#(http:\/\/)*([w]{3}\.)*([a-z0-9_-]*\.[a-z]{2,3})(\/)?#i";
    $replace = "www.\\3";
    foreach ($domains AS $v) {
    	$test = preg_replace($pattern, $replace, $v);
    	echo $test."<br />";
    }
     
    // Affichera :
    /*
    www.test.com
    www.test.com
    www.test.com
    www.test.com
    www.test.com
    www.test.com
    */
    ?>
    Etait-ce bien ce que tu voulais ?

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut
    merci pour la réponse

    comment je fais pour adapter cela à mon input ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <input type="text" name="label" value="<?php echo $label ?>" />
    je change la variable $domains de ton code par $label ?

  4. #4
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <?php
    $label = "";
    if (isset($_POST['label']) && !empty($_POST['label'])) {
    	$pattern = "#(http:\/\/)*([w]{3}\.)*([a-z0-9_-]*\.[a-z]{2,3})(\/)?#i";
    	$replace = "www.\\3";
    	$label = preg_replace($pattern, $replace, $_POST['label']);
    }
    ?>
    <form method="post" action="<?php echo $_SERVER['PHP_SELF']; ?>">
    <input type="text" name="label" value="<?php echo $label ?>" />
    <input type="submit" value="Envoyer" />
    </form>

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2008
    Messages
    112
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Août 2008
    Messages : 112
    Points : 48
    Points
    48
    Par défaut
    le code n'a pas l'air de fonctionner... quand je veux éditer il me met le champ vide

    (il se peut que j'aille autre chose comme texte que des URLs dans mon input $label)

  6. #6
    Membre émérite Avatar de darkstar123456
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mars 2008
    Messages
    1 896
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Mars 2008
    Messages : 1 896
    Points : 2 835
    Points
    2 835
    Par défaut
    Citation Envoyé par link.80 Voir le message
    (il se peut que j'aille autre chose comme texte que des URLs dans mon input $label)
    bon alors donc t'auras surement pas le résultat que tu veux :p

    par contre, tu devrais au moins avoir quelque en retour... par exemple, mon URL de reply à ton post : 'http://www.developpez.net/forums/newreply.php?do=newreply&p=4484395'

    me retourne dans l'input :

    http://www.developpez.netforums/www....eply&p=4484395


    As-tu essayé avec mon bout de code ? peut-être l'as-tu mal adapté, non ? :s


    PS : pour régler ton problème, il suffit de remplacer légèrement le $pattern par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = "#(http:\/\/)*([w]{3}\.)*([a-z0-9_-]*\.[a-z]{2,3})(.*)?#i";
    donc si tu regardes bien la dernière parenthèse (\/) est modifiée par (.*)


    EDIT : hmmmm j'viens de relire... tu pourrais avoir autre chose que des URL ?
    normalement ce pattern ne vire que les "http://" et les "www." et les ".ex(t)/" donc tout le reste sera affiché... si tu entres "blabla bla" dans ton input, il te l'affichera

Discussions similaires

  1. Réponses: 13
    Dernier message: 21/06/2006, 19h36
  2. Compter un certain caractère dans une chaine.
    Par illuzmax dans le forum Débuter
    Réponses: 16
    Dernier message: 07/04/2006, 16h37
  3. [XSL-FO] [FOP] Support de certains caractères polonais
    Par Shadow aok dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 09/03/2006, 09h33
  4. Problème avec certains caractéres dans variable
    Par Off$ide dans le forum Langage
    Réponses: 14
    Dernier message: 13/12/2005, 10h46
  5. afficher dialbox si certains caractères !
    Par NoobX dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 18/11/2005, 15h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo