petit problème preg_replace : réglé

Consultez la formation à Google Analytics de WebRankInfo / Ranking Metrics

yep
WRInaute impliqué
WRInaute impliqué
 
Messages: 286
Inscription: Sam Avr 03, 2004 12:02

petit problème preg_replace : réglé

Message le Mer Mai 04, 2005 14:41

salut à tous
mon problème est simple : je souhaite mettre en majuscule tous les attributs (et pas leur contenu) des balises HTML

Voici mon code:

Code: Tout sélectionner
  $mask = "#([a-zA-Z0-1\-_]+)=(('|\")|)(.*?)(?(3)(\\3)|( |>))#si";
  $repl = strtoupper('\\1').'="\\4"';
  $res = preg_replace($mask,$repl,$contenu_balise);


La fonction permettant de mettre le contenu en majuscule ne fonctionne pas, où ai-je fait une erreur ?
Quelqu'un peut-il m'aider ?
merci d'avance :p
Dernière édition par yep le Mer Mai 04, 2005 15:05, édité 1 fois.


aladdin
WRInaute passionné
WRInaute passionné
 
Messages: 925
Inscription: Ven Avr 29, 2005 12:26

Message le Mer Mai 04, 2005 14:55

pourquoi faire simple quand on peut faire compliqué ;)

Code: Tout sélectionner
function to_upper($str){
return strtr($str,
          "abcdefghijklmnopqrstuvwxyz",
         "ABCDEFGHIJKLMNOPQRSTUVWXYZ");
}


poum poum poum


aladdin
WRInaute passionné
WRInaute passionné
 
Messages: 925
Inscription: Ven Avr 29, 2005 12:26

Message le Mer Mai 04, 2005 14:58

et merde j'avais ooublié ça :
Code: Tout sélectionner
strtoupper($str);



LMAO :lol:

yep
WRInaute impliqué
WRInaute impliqué
 
Messages: 286
Inscription: Sam Avr 03, 2004 12:02

Message le Mer Mai 04, 2005 15:01

je viens de trouver (2 minutes après avoir posté le message alors que cela faisait presque 2 heures que je cherchais sur le net)

Code: Tout sélectionner
  $mask = "#([a-zA-Z0-1\-_]+)=(('|\")|)(.*?)(?(3)(\\3)|( |>))#sie";
  $repl = "strtoupper('\\1').'=\"\\4\"'";
  $r = preg_replace($mask,"strtoupper('\\1').'=\"\\4\"'",$contenu_balise);


C'était juste l'option 'e' à rajouter :p


m@thieu
WRInaute discret
WRInaute discret
 
Messages: 52
Inscription: Ven Fév 18, 2005 10:06

Re: petit problème preg_replace :p

Message le Mer Mai 04, 2005 15:10

aladdin a écrit:poum poum poum

mais non il veut seulement mettre le noms des attributs en majuscule !

yep tu t'as trompé de sens, les attributs doivent être en minuscule en xhtml !

et voila la correction avec tests intégrés ;)
Code: Tout sélectionner
$avant = '<a HReF="aaaaAA">ezzerzer</A>';

echo htmlspecialchars($avant) . "<br/>";

$mask = "#([a-zA-Z0-1\-_]+)=(('|")|)(.*?)(?(3)(\\3)|( |>))#sie";
$repl = 'strtolower(\'\\1\').\'="\\4"\'';
$res = preg_replace($mask, $repl, $avant);

echo htmlspecialchars($res) . "<br/>";


n'hésite pas à faire plein de tests je n'ai pas trop regardé ton code


Formation recommandée sur ce thème :

Formation Google Analytics : en 2 jours, apprenez comment exploiter l'essentiel des possibilités de l'outil de mesure d'audience de Google. Formation animée par Julien Coquet, expert certifié officiellement par Google Analytics.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité