[php]récuperer le premier caractére de $ ,etc [Résolu/Fermé]

Messages postés
302
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
22 novembre 2007
- - Dernière réponse :  hermann - 27 févr. 2018 à 15:38
bonsoir,

j'ai un petit probleme,
j'ai était voire sur les cours de ccm, & autre & je n'y arrive pas

esplication:

j'ai une variable $n qui contient le début d'un nom, et je voudrais récuperer ( ds cette même variable ) la premiére lettre

mais .... ça marche pas ... sniff

voila ske j'ai fait :

$n = split('%',$n,2);
$n = $n[1];

si vous pouvez me dire ce qui va pas, ...
merci !!
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
13089
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
14 août 2019
365
47
Merci
lu blbg

pour recuperer le prmier caractere d'une chaine tu as deux solutions...

1- $n=substr($n,0,1);
substr(string,start,length)
recupee la sous-chaine debutant a start et de longueur length
nb: le premier caractére d'une chaine se trouve a la position 0

2- $n = $n{0}; recupere le caractere a la position entre les accolades.
celle là je viens tout juste de la découvrire :)

@++

Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !

Dire « Merci » 47

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

CCM 57558 internautes nous ont dit merci ce mois-ci

Messages postés
302
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
22 novembre 2007
10
0
Merci
re bonsoir .....
personne ne veux me répondre ??

j'ai regarder sur les sujets parlant d'espressions regulieres et ...... je n'ai rien trouver ....

j'ai juste besoin d'un truc pour :
récuperer dans une variable que la premiére lettre d'une variable ( string )
et aussi une autre fonction/procedure pour :
récuperer toutes les lettres d'une variable ( String ) sauf la premiére ...

vous pouvez m'aider ??? merci ... d'avance !!!!
car là .... franchement ..... je rame ... ( comme pas mal de débutant apparement !! )
merci .....
Messages postés
302
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
22 novembre 2007
10
0
Merci
merci asevere !!!! ça marche super !!!!!!

mais j'ai un autre pb !!

je fait un projet ou il y a une recherche par nom, on peu le faire soit en clicant sur une lettre ... ( ça initialise $n avec cette lettre ) soit en entrant ds une zone de texte plusieure lettre ( permet une selection plus fine , .. )
mais aprés je veux récuperer la premiére lettre pour pouvoir visionnée les lettre précedente & suivante ...
mais là ..... qd je passe par la saisie, ( avec les affichage, je voie que la récupération de la premiére lettre à bien marché ) mais ça ne m'affiche que lettre suivante ...
pourkoi ??
alor que si je clic sur une lettre, ça me met bien " lettre precedente, & suivcante "
voila la source ...

echo ' <p align=\'center\' valign=\'middle\'>' .$n;
$n= substr($n,0,1);
echo ' '.$n.' ' .(chr(ord($n)));
if ( $n<Z) echo' <a href=\'etudiant.php3?n='.(chr(ord($n)-1)).' \'> lettre précédente </a>';
if ( $n>A) echo' <a href=\'etudiant.php3?n='.(chr(ord($n)+1)).'\'> lettre suivante </a>';

par ex si je rentre " bl " , ça m'affiche :
bl b b lettre suivante

vous savez pourquoi ça fait ça ??
merci ...
Messages postés
13089
Date d'inscription
lundi 28 janvier 2002
Statut
Webmaster
Dernière intervention
14 août 2019
365
0
Merci
Bon je repondu a ton autremessage avec deux truc qui marche bien si tu veux...

et pour la le script fait exactement ce que tu lui demande ;)

-echo ' <p align=\'center\' valign=\'middle\'>' .$n;
$n contient "bl" donc affichage = "bl"
-$n= substr($n,0,1); // $n="b " ici
-echo ' '.$n.' ' .(chr(ord($n)));
//affichage $n (b)
//puis chr(ord($n))=$n="b"
donc au final "bl b b"

ensuite comme tu teste sur des caractéres ils faut le delimiteur '
donc $n<'Z' et $n>'A' pour etre exact
comme php est trés souple cela ne le derange pas trop... cependant
si la valeur de 'B' est 66 celle de 'b' est 98 donc 'b' est superieur a 'A' mais 'b' n'est pas inferieur a 'Z' (90)

utilise la fonction strtoupper pour tout passer en majuscule au debut de ton script...

$n=strtoupper($n);
... //ton script //...

et ca marchera...

bonne soirée
voila le pb


Na kaer eo va Breizh,
gand ar mor glaz èn-dro dezi !
Messages postés
302
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
22 novembre 2007
10
0
Merci
vous aurez remarquez qu'il y a eu un pb de copié/collé :

if ( $n>A) echo' ... lettre précédente </a>';
if ( $n<Z) echo' ... lettre suivante </a>';

mais j'ai retesté .... et ça me fait toujours pareil ... ça m'affiche que lettre précédente !!

bonne nuit, je vais enfin aller faire dodo !!