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 :

Mettre en majuscule tout sauf le contenu de balise HTML [RegEx]


Sujet :

Langage PHP

Vue hybride

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut Mettre en majuscule tout sauf le contenu de balise HTML
    Bonjour,

    Je souhaiterais si possible en passant par une expression régulière mettre une chaine de caractère en majuscule.
    Le problème étant que cette chaine peut contenir du code HTML (liens, images, ...). Je dois donc mettre toute la chaine en majuscule excepté le contenu des balises HTML.

    Jusqu'à maintenant j'arrive à mettre en majuscule le contenu des balises et non l'inverse >_<
    avec l'expression suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_replace("/(<[^>]+>)/e","mb_strtoupper('$1')",$val);
    alors comment faire l'inverse parce que malgrès mes recherches sur le net et mes tentatives je n'arrive à rien.

    j'ai bien essayé des bidouille comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    preg_replace("/(^(?<[^>]+>))/e","mb_strtoupper('$1')",$val);
    ou
    preg_replace("/(^<[^>]+>)/e","mb_strtoupper('$1')",$val);
    mais rien à faire... je dois pas bien comprendre la syntaxe je pense...

    Merci d'avance pour ceux qui prendront le temps de chercher et de me répondre.

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    10
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 10
    Par défaut
    Bon, faute d'avoir réussi à faire ce que je voulais, j'ai bidouillé un peu, mais j'arrive à obtenir ce que je souhaite.

    la démarche :
    - je récupère dans un tableau toutes les portions de code html
    - dans un autre tableau je copie le contenu du précédant en le mettant en majuscule
    - je met ma chaine de caractère initiale en majuscule
    - je remplace dans ma chaine en majuscule les portions de code en majuscules par celles en minuscules

    le code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    function mon_maj($val){
    	//recherche des portions de code html
    	preg_match_all("/<[^>]*>/muie",$val,$tb,PREG_SET_ORDER);	$tabs = array();
    	//aplatie le tableau pour avoir un array à une dimension
    	foreach($tb as $t){$tabs[] = $t[0];}
    	//contenu du tableau en majuscule
    	$tabs2 = array_map('mb_strtoupper',$tabs);
    	 //chaine initiale en majuscule
    	$srt = mb_strtoupper($val);
    	//remplacement
    	$srt = str_replace($tabs2,$tabs,$srt);
    	return $srt;
    }
    Bon, par contre si quelqu'un trouve la solution avec un preg_replace ça m'intéresse quand même...

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

Discussions similaires

  1. [2.x] [TWIG] Symfony m'entoure tout le code d'une balise <HTML> !
    Par Le Barde dans le forum Symfony
    Réponses: 3
    Dernier message: 25/08/2011, 13h32
  2. [RegEx] Extraire le contenu de balises HTML
    Par johnstyle dans le forum Langage
    Réponses: 0
    Dernier message: 26/11/2010, 11h55
  3. [RegEx] Lire le contenu des balises HTML
    Par ChriGoLioNaDor dans le forum Langage
    Réponses: 1
    Dernier message: 14/04/2010, 08h41
  4. Extraire le contenu de balises HTML d'une page WEB
    Par sephyroth69 dans le forum Servlets/JSP
    Réponses: 3
    Dernier message: 21/01/2010, 21h32
  5. Mettre en majuscules toutes les chaînes d'une colonne
    Par Yellowmat dans le forum Excel
    Réponses: 3
    Dernier message: 26/09/2007, 01h53

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