Précédent   Forum des professionnels en informatique > PHP > Langage > Syntaxe
Syntaxe Forum d'entraide sur la syntaxe de PHP et la POO. Avant de poster -> FAQ syntaxe, Cours d'initiation et cours de POO
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 30/01/2012, 06h18   #1
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Par défaut afficher la 1re lettre et remplacer le reste

Bonjour.

Une commande PHP qui me permettrait de remplacer à partir de la 2me lettre par un cactère.

ex:

montagne
m--------

J'ai pensé à une combinaison de strlen et substr.

peut-etre mieux, un preg_replace.
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 11h06   #2
Modératrice
 
Avatar de Celira
 
Femme
Développeuse PHP/Java
Inscription : avril 2007
Messages : 3 676
Détails du profil
Informations personnelles :
Sexe : Femme
Âge : 27
Localisation : France

Informations professionnelles :
Activité : Développeuse PHP/Java

Informations forums :
Inscription : avril 2007
Messages : 3 676
Points : 5 417
Points : 5 417
Un mix de substr, strlen et str_pad :
Code :
1
2
$str = "montagne";
echo str_pad(substr($str, 0,1), strlen($str), "-");
Mais on doit aussi pouvoir faire quelque chose avec une regex et preg_replace
__________________
Modératrice PHP
Aucun navigateur ne propose d'extension boule-de-cristal : postez votre code et vos messages d'erreurs. (Rappel : "ça ne marche pas" n'est pas un message d'erreur)

Pour afficher votre code en couleurs : [CODE=php][/CODE] (bouton # de l'éditeur)
Celira est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 11h45   #3
Modérateur
 
Avatar de Benjamin Delespierre
 
Benjamin Delespierre
Développeur Web
Inscription : février 2010
Messages : 2 999
Détails du profil
Informations personnelles :
Nom : Benjamin Delespierre
Âge : 24
Localisation : France

Informations professionnelles :
Activité : Développeur Web
Secteur : High Tech - Opérateur de télécommunications

Informations forums :
Inscription : février 2010
Messages : 2 999
Points : 5 049
Points : 5 049
Ou encore:
Code :
1
2
$str = "montagne";
echo str_pad($str[0], strlen($str), "-");
l'opérateur [] sur des chaines de caractères est environ 2x plus rapide que substr s'il s'agit d'aller chercher un seul caractère.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom
Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même).

Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...".
Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug.

Les boutons et existent, servez-vous en
Benjamin Delespierre est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 12h15   #4
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
J'ai fait comme ceci :
Code :
1
2
3
 
$code = 'bleu';
$indicecolor = $code[0].preg_replace('/[a-z]/'," _",substr($code,1));
ça donne ceci :

b___

trois lettres de remplacement par une underscore.

Je ne connaissais pas str_pad
je vais regarder ça.

J'avais déja écris ma solution mais la 2e proposée me plait bien.
Code :
1
2
3
4
<?php
$str = "calculatrice";
echo str_pad($str[0], strlen($str), "_");
?>
Merci
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 30/01/2012, 12h41   #5
Membre du Club
 
Inscription : janvier 2010
Messages : 317
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 317
Points : 62
Points : 62
Finalement, ma solution est plus avantageuse.

Elle permet de ventiler en ajoutant un espace.

montagne

m_ _ _ _ _ _ _

str_pad ne le permet pas.

Code :
1
2
$code = 'bleu';
$indicecolor = $code[0].preg_replace('/[a-z]/'," _ ",substr($code,1));
Mais, vos solutions peuvent servir dans un autre code.

Merci!
__________________
dancom5 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 13h58.


 
 
 
 
Partenaires

Hébergement Web