Page 1 sur 1

Trouver la premiere le premier caractere d'une variable

Posté : 16 janv. 2007, 17:10
par castelli
Bonjour je voulais savoir comment obtenir le premier caractere d'une variable. (ps: dans mon cas il s'agit de #)
Quel fonction peut on utiliser?

(je suis allez voir du coté de strstr et autre mais sa me donne tout ce qui suit et pas lepremier caractere)

avez vous une idée ?
merci encore

Posté : 16 janv. 2007, 17:28
par Ajoloca
Bonjour,

C'est substr()
$ma_variable = '#valeur';
$premier_car = substr($ma_variable, 0, 1);
echo $premier_car; // Affichera #

Posté : 16 janv. 2007, 17:44
par Jules Petibidon
hello,

sinon, plus simplement :

$str = 'truc';
echo $str[0];

on peut accéder au contenu d'une chaine comme si c'était un tableau.
parfois ca ammene d'ailleurs des surprises amusantes lorsqu'on se plante dans certaines déclarations ;)

à noter qu'on peut aussi utiliser ceci :

echo $str{0};

mais j'ai cru lire quelque part que c'était "déprécié"

Posté : 16 janv. 2007, 17:48
par Ultim4T0m
Personnellement, j'utilise egalement le fait qu'une chaine de caractère est un tableau...

et donc :
echo $ma_variable[0]; // Affiche #
Pour cette technique serait depréciée ?

Posté : 16 janv. 2007, 17:49
par Jules Petibidon
Personnellement, j'utilise egalement le fait qu'une chaine de caractère est un tableau...

et donc :
echo $ma_variable[0]; // Affiche #
Pour cette technique serait depréciée ?
copieur !
non absolument pas... cf mon post précédent ;)

Posté : 16 janv. 2007, 17:51
par Ultim4T0m
Oups oui, j'ai lu trop vite ^^'

Désolé :oops:

Posté : 16 janv. 2007, 18:09
par Ajoloca
Re,

Vous êtes surs que si vous codez en UTF8 votre "technique" sera toujours d'actualité ???
Moi non.

Posté : 16 janv. 2007, 18:16
par Ryle
Il me semble avoir vu passer un post de Hubert décrivant les inconvénients de compatibilité du codage des chaines en utf-8, et à priori le substr() fonctionnerait pas plus :?

Posté : 16 janv. 2007, 18:25
par Ajoloca
Il me semble avoir vu passer un post de Hubert décrivant les inconvénients de compatibilité du codage des chaines en utf-8, et à priori le substr() fonctionnerait pas plus :?
Ce que j'ai voulu dire par là, c'est que PHP 6 saura nativement interpréter l'UTF-8. Ce ne sera pas le cas des tableaux.

Donc substr() sera adapté, et pas besoin de tout recoder.

De plus il existe déjà des solutions (une API) qui gèrent l'UTF-8 en PHP, je ne suis pas sur du nom, mais je crois quelle s'appelle "phputf8".

EDIT :

j'ai retrouvé QQ chose

EDIT 2 :

Une recherche :google: avec "phputf8" vous donnera plus d'explications que moi.

Posté : 16 janv. 2007, 18:29
par Hubert Roksor
C'est juste, UTF-8 ou pas, $var[0] et substr($var, 0, 1) renverront la même chose. C'est à dire que sous PHP6 aucun problème (pour peu d'avoir activé "unicode_semantics"), mais sous PHP3/4/5 vous n'êtes pas sûr que cela fonctionne en UTF-8. À noter que le caractère # fait partie d'ASCII et grâce aux propriétés d'UTF-8 il est identique en ASCII, ISO-8859-1 ou UTF-8. En clair, peu importe la version de PHP, peu importe le reste de la chaîne, peu importe que la chaîne soit en ISO-8859-1 ou UTF-8, il sera toujours possible de vérifier qu'elle commence bien par # en utilisant $var[0].

Quant à la "dépréciation" dont on parle, c'est l'utilisation des accolades {} plutôt que des crochets []. N'utilisez que les crochets.

Posté : 16 janv. 2007, 18:32
par Hubert Roksor
[...] PHP 6 saura nativement interpréter l'UTF-8. Ce ne sera pas le cas des tableaux.
Ça ne correspond pas à ce que je sais de PHP 6. À ma connaissance, il n'y a pas de différence entre $var[n] et substr($var, n, 1) que ce soit en PHP 4/5/6 avec unicode_semantics on ou off.

Posté : 16 janv. 2007, 18:35
par Ajoloca
Re,
Je vais essayer de retrouver l'article ou j'ai lu ça.

Posté : 16 janv. 2007, 19:06
par castelli
deja merci pour toute ces reponses,
j'ais tester avec substr() et sa fonctionne bien
exactement ce que j'avais besoin

merci a tous