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 :

Utilisation preg_replace [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Utilisation preg_replace
    Bonjour,
    Sur un site j'utilise une police qui a comme inconvénient d'afficher un carré quand les lettres "fi" ou "fl" sont dans un mot.
    Pour afficher ces lettres il faut les remplacer par un code.
    Pour "fi" c'est "" et pour "fl" c'est "".
    Comme la police n'est utilisée que pour des titres avec les balises h1 a h6, je me suis dit que preg_replace() pourrait m'aider, seul problème, avec ce que j'ai fait seul le premier fi est remplacé.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    $string = '<h2>Quel type de fichier de configuration nous envoyer ?</h2>';
    $pattern = '/<h[1-6]>(.*?)(fi*)(.*?)<\/h[1-6]>/';
    $replacement = '$1 xx$3';
    echo preg_replace($pattern, $replacement, $string);
    Merci de votre aide
    Dernière modification par Invité ; 03/12/2012 à 10h53.

  2. #2
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Utilise plutôt str_replace pour ce genre de chose simple
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bah non car comme je le disais c'est uniquement pour les balises h1 a h6.
    donc le reste du texte n'a pas a être soumis a ce changement.

  4. #4
    Modérateur
    Avatar de grunk
    Homme Profil pro
    Lead dév - Architecte
    Inscrit en
    Août 2003
    Messages
    6 693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Lead dév - Architecte
    Secteur : Industrie

    Informations forums :
    Inscription : Août 2003
    Messages : 6 693
    Par défaut
    Désolé , j'ai lu un peu vite.

    En échappant correctement les < et > du pattern ça donne quoi ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $pattern = '`\<h[1-6]\>(.*?)(fi*)(.*?)\</h[1-6]\>`';
    Pry Framework php5 | N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  5. #5
    Invité
    Invité(e)
    Par défaut
    Seulement le premier fi est remplacé par xx.
    J'avoue ne pas savoir comment faire. Pourtant je suis certain que preg_replace est la solution.

  6. #6
    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
    Chez moi ça fonctionne.
    Sauf dans le cas ou ton titre est sur plusieurs lignes, auquel cas il faut le modifieur "s"

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <?php
    $string = 'blablablabla<h2>Quel type de fichier de configuration nous envoyer ?</h2>blablablabla
    <h2>Quel type de fichier de configuration nous envoyer ?</h2>blablablabla<h2>Quel type de fichier de configuration
     nous envoyer ?</h2>blablablabla';
    $pattern = '/<h[1-6]>(.*?)(fi*)(.*?)<\/h[1-6]>/s';
    $replacement = '$1 xx$3';
    echo preg_replace($pattern, $replacement, $string);
    N'oubliez pas de consulter les FAQ PHP et les cours et tutoriels PHP

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

Discussions similaires

  1. [RegEx] Comment utiliser preg_replace() quand il y a un . ou un ?
    Par pierrot10 dans le forum Langage
    Réponses: 6
    Dernier message: 07/05/2012, 22h43
  2. [RegEx] utilisation preg_replace
    Par larsulrich dans le forum Langage
    Réponses: 2
    Dernier message: 19/03/2010, 13h54
  3. Utiliser $_SERVER avec un preg_replace
    Par GarGamel55 dans le forum Langage
    Réponses: 1
    Dernier message: 09/10/2006, 17h11
  4. [RegEx] utilisation de preg_replace
    Par magdalena dans le forum Langage
    Réponses: 1
    Dernier message: 30/08/2006, 14h43
  5. [RegEx] utilisation de preg_replace sur des balises
    Par Kerod dans le forum Langage
    Réponses: 5
    Dernier message: 09/12/2005, 13h46

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