Trouver la premiere le premier caractere d'une variable

Eléphant du PHP | 450 Messages

16 janv. 2007, 17:10

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
Alone in the dark , I smile :D

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 17:28

Bonjour,

C'est substr()
$ma_variable = '#valeur';
$premier_car = substr($ma_variable, 0, 1);
echo $premier_car; // Affichera #
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 259 Messages

16 janv. 2007, 17:44

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é"

Eléphant du PHP | 445 Messages

16 janv. 2007, 17:48

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 ?
LLDC
Ulti

Eléphant du PHP | 259 Messages

16 janv. 2007, 17:49

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 ;)

Eléphant du PHP | 445 Messages

16 janv. 2007, 17:51

Oups oui, j'ai lu trop vite ^^'

Désolé :oops:
LLDC
Ulti

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 18:09

Re,

Vous êtes surs que si vous codez en UTF8 votre "technique" sera toujours d'actualité ???
Moi non.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

16 janv. 2007, 18:16

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 n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 18:25

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.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

16 janv. 2007, 18:29

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.

Administrateur PHPfrance
Administrateur PHPfrance | 3088 Messages

16 janv. 2007, 18:32

[...] 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.

ViPHP
ViPHP | 1961 Messages

16 janv. 2007, 18:35

Re,
Je vais essayer de retrouver l'article ou j'ai lu ça.
Deux choses sont infinies, l'Univers et la sottise humaine!!
Mais je ne suis pas sur de ce que j'affirme au sujet de l'Univers.

A. Einstein

Eléphant du PHP | 450 Messages

16 janv. 2007, 19:06

deja merci pour toute ces reponses,
j'ais tester avec substr() et sa fonctionne bien
exactement ce que j'avais besoin

merci a tous
Alone in the dark , I smile :D