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 :

preg_replace un caractère avec espace avant et après [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut preg_replace un caractère avec espace avant et après
    Bonjour, je pense que je n'ai pas ete tres clair dans le titre, mais je n'ai pas trouve mieux!!

    je m'explique: pour mes reecriture d'url en utilisant le titre, je vais devoir "netoyer" le titre en retirant les caracteres speciaux et accents, puis remplacer les espaces, virgules, point virgule, ... par un tiret (-)
    disant que je veux faire ce traitement pour cette chaine "bonjour, j'aimerais faire cela" ca deviendra "bonjour--j-aimerais-faire-cela"
    et donc le probleme que j'ai c'est les 2 tirets!

    y a t il un moyen de remplacer la virgule ainsi que les espaces avant et apres par un tiret??

    Merci bien

  2. #2
    Membre émérite
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2009
    Messages
    736
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2009
    Messages : 736
    Par défaut
    tu pourra utilisé la fonction urlencode pour qu'il te décode ta chaîne.

  3. #3
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    hop
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace("#[ ,;']+#","-", $chaine);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Merci pour vos reponses.

    tu pourra utilisé la fonction urlencode pour qu'il te décode ta chaîne.
    je connais urlencode et c'est pas trop ce que je cherche!

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace("#[ ,;']+#","-", $chaine);
    wow c'est magique, merci beaucoup

    j'aurais 2 autres petites questions svp:
    ca marche pas lorsque je veux egallement remplacer " par -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $chaine = "bonjour \"ici texte";
    $chaine = preg_replace("#[ ,.;:'&-\"]+#", "-", $chaine);
    saurais tu pourquoi?

    j'ai trouve un code pour supprimer les caracteres speciaux et accents

    qu'en penses tu? qu'est ce que c'est cette ligne, j'ai rien compris!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $text = preg_replace( array('/ß/','/&(..)lig;/', '/&([aouAOU])uml;/','/&(.)[^;]*;/'), 
    array('ss',"$1","$1".'e',"$1"),  
    $text);
    Merci infiniment

  5. #5
    Modérateur
    Avatar de sabotage
    Homme Profil pro
    Inscrit en
    Juillet 2005
    Messages
    29 208
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Juillet 2005
    Messages : 29 208
    Par défaut
    Ca donnerait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace("#[ ,.;:'&\"]+#", "-", $chaine);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pourquoi ne pas faire juste ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace('/\W+/u', '-', $chaine);

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    901
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 901
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace("#[ ,.;:'&\"]+#", "-", $chaine);
    et pourquoi tu as retiré le tiret ?? j'en ai aussi besoin pour remplacer par exemple "ici - texte" par "ici-texte".
    l'ordre des elements a remplacer (,: a de l'importance?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine = preg_replace('/\W+/u', '-', $chaine);
    j'ai essaye cette ligne mais ca marche pas, j'obtiens un resultat qui ne correspond pas du tout a ma chaine d'aorigine!

    je viens de me rendre compte que j'ai pas mis le lien de la page où j'ai trouve le code pour supprimer les accents et caracteres speciaux
    http://www.3gk-software.com/Traiteme...-speciaux.html

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Supprimer les espaces avant et après un caractère
    Par KaliMero973 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/04/2013, 10h20
  2. [XSLT] enlever espace avant et après un string
    Par nagdrir dans le forum XSL/XSLT/XPATH
    Réponses: 4
    Dernier message: 10/09/2007, 16h18
  3. Exec avec paramètres avant et après exécutable
    Par blinkz0rz dans le forum ANT
    Réponses: 3
    Dernier message: 20/07/2006, 14h46
  4. Espacement avant et après la balise <form>
    Par yoyot dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 22/06/2006, 09h23
  5. [CSS]Taille de l'espacement avant et après d'un paragraphe
    Par Andry dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/02/2006, 12h26

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