Page 1 sur 1

mettre la premiere lettre en majuscule

Posté : 24 mars 2011, 14:34
par pamalalarache
bonjour,

j'ai un texte qui ressemble à : <p>salut ca va </p> ou à <p> salut ca va </p>

Je veux mettre la première lettre du mot en majuscule , mais j'ai une balise <p> avant et j'aimerais enlever les espaces si il y en a entre la balise <p> et le premier mot.

Comment dois je faire cela??

J'ai essayer plein de chose avec urcfirst :
$test = "<p>youpi youpla boum";
$test = ucfirst($test);	
$test = preg_replace('#&nbsp;#', '', $test);

echo $test;

Re: mettre la premiere lettre en majuscule

Posté : 24 mars 2011, 14:52
par macgawel
Un conseil :
Apprends à décomposer ce que tu veux faire en petites actions, tu n'auras peut-être pas le meilleur résultat mais ça t'assure d'obtenir le résultat.
Et au pire, comme tu décomposes tu peux facilement débugger...

1. Suppression des balises de paragraphe => preg_replace()
2. Suppression des espaces à gauche => ltrim()
3. Forcer la majuscule => ucfirst()
4. Remettre les balises

Re: mettre la premiere lettre en majuscule

Posté : 24 mars 2011, 15:04
par pamalalarache
ok
c vrai que ca parait plus clair comme ca.
Mais comment remettre les balises au début et à la fin ? :shock:

Re: mettre la premiere lettre en majuscule

Posté : 24 mars 2011, 15:27
par macgawel
Mais comment remettre les balises au début et à la fin ? :shock:
$test = "<p> youpi youpla boum</p>";
$resultat = PremiereLettreMajuscule($test);
$ResultatAvecBalises = '<p>'.$resultat/'</p>';
:mrgreen:

Si tu as besoin de faire ça avec des balises quelconques, ça se complique un peu, mais ça reste jouable. Par exemple :

1. Suppression des balises de paragraphe => preg_replace()
2. Suppression des espaces à gauche => ltrim()
3. Forcer la majuscule => ucfirst()
4. Remplacer dans le texte original le résultat de 1. par le résultat de 3.

Re: mettre la premiere lettre en majuscule

Posté : 24 mars 2011, 21:10
par dunbar
Salut,

Comme ceci je pense
<?php
$test = "<p>youpi youpla boum</p>";
$test = ltrim(strip_tags($test));
echo '<p>' . ucfirst($test) . '</p>';

?>

Re: mettre la premiere lettre en majuscule

Posté : 24 mars 2011, 21:26
par stealth35
c'est plutôt en CSS que ça doit se faire, avec :first-letter