Mettre le Premier Caractère de Chaque Ligne en Majuscule

Eléphant du PHP | 72 Messages

01 mars 2006, 01:44

Salut à tous !

Eh beh le titre dit tout héhé
Je sais que pour mettre le premier caractère d'une chaine en majuscule on fait ucfirst() mais pour selectionner séparement chaque ligne ... boh :(

Merci d'avance !

EDIT : Est-ce que ca fonctionnerait avec strtok() ? Pour découper la chaine en morceau en utilisant \n comme séparateur ?

ViPHP
ViPHP | 1380 Messages

01 mars 2006, 09:58

Possible à faire avec le traitement de chaîne conventionnel:
file() -> boucle sur les lignes -> ucfirst() -> boucle pour reconstituer le texte.

Ou bien, plus court (pas nécessairement plus lent - à tester):
function myUcfirts($captures){
  return strtoupper($captures[0]);
}

$txt = preg_replace_callback('´^\w´m', 'myUcfirts', $txt);

echo '<pre>'.$txt.'</pre>';
Edit: version traitement de chaînes
$aTxt = explode("\n", $txt);
foreach($aTxt as $v){
  $out .= ucfirst($v)."\n";
}
echo '<pre>'.$out.'</pre>';
Pas de différences notable en vitesse d'exécution.
ripat

Eléphant du PHP | 72 Messages

01 mars 2006, 21:28

Merci beaucoup ! Fonctionne très rapidement et parfaitement ...
J'ai ajouter trim() dans la boucle pour supprimer les espaces superflus :wink: -> D'une pierre 2 coups :p

Administrateur PHPfrance
Administrateur PHPfrance | 11457 Messages

01 mars 2006, 21:46

Un p'tit [Résolu] alors ? ;)