AIDE EXPRESSIONS REGULIERES

Eléphant du PHP | 72 Messages

26 oct. 2009, 22:11

Bonjour à tous,

j'aurais besoin de vos comptetences dans les experessions regulieres voire meme en spl si vous le savez.

Soit la chaine de caractere FA0910 135 ou il existe un espace entre FA0910 et 135.

je dois recuperer le 5 ieme et 6 ieme caractere, comment dois je procédé?

j'etais parti sur :

list($iDebut,$iFin) = explode( ' ',$sMaChaineDeCaractere);
unset ($iFin); // correpond à 135

$sChaineOuCherche = explode('FA',$iDebut);

Merci pour votre aide

Mammouth du PHP | 985 Messages

26 oct. 2009, 22:21

Salut,
$chaine = 'FA0910 135';
list($debut, $fin) = explode( ' ', $chaine);
$resultat = substr($debut, -2);
ou:
$chaine = 'FA0910 135';
list($debut, $fin) = explode( ' ', $chaine);
$resultat =  substr($debut, 4);
ou:
$chaine = 'FA0910 135';
$resultat =  substr($chaine, 4, 2);
:wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

Eléphant du PHP | 72 Messages

26 oct. 2009, 22:36

Bcp plus simple que ce à quoi je m'attendais .Merci

ViPHP
fab
ViPHP | 2657 Messages

27 oct. 2009, 01:15

$chaine{3} et $chaine{4} non?
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Mammouth du PHP | 985 Messages

27 oct. 2009, 01:45

$chaine{3} et $chaine{4} non?
De quoi tu parles? :)
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
fab
ViPHP | 2657 Messages

27 oct. 2009, 01:50

Bah pour afficher les caractères, tu connais pas? :p

Essaye
<?php 
$string = "plop";
echo "Char 1 ::  " .$string{1}."\n";
?>
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Mammouth du PHP | 985 Messages

27 oct. 2009, 01:56

Non je ne connaissais pas, je suis autodidacte :wink:

Donc oui comme dit fab, une autre technique simple:
$chaine = 'FA0910 135';
$resultat = $chaine{4} . $chaine{5};
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
fab
ViPHP | 2657 Messages

27 oct. 2009, 02:09

autodidacte na rien a voir, tu as simplement raté certains chapitres sur phpdebutant ou le siteduzero :D Y a pleins de trucs cons des fois :)
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }

Mammouth du PHP | 985 Messages

27 oct. 2009, 02:21

C'est sur :)

Je viens de lire un petit article dessus, ils expliquent que les chaines ressemblent aux tableaux.
Et donc que $chaine[4] renvoie le 5eme caractère...
Donc $chaine{4} doit être une variante je suppose.

Et le décalage existe car comme toujours on démarre de 0...

Intéressant :wink:
Face à la roche, le ruisseau l'emporte toujours, non pas par la force mais par la persévérance.

ViPHP
fab
ViPHP | 2657 Messages

27 oct. 2009, 02:27

Oué mais par contre dans le genre mauvaise pratique je présente utiliser les [] sur des chaines! Après ça devient impossible de te repérer dans ton code :) D'autant plus que tu peux utiliser des variables avec les { donc il n'y aucun avantage à utiliser les [] ex:
$string = "plopinou";
for($i=0;$i<strlen($string);$i++) echo $string{$i};
{/PHP]
Seul l'intelligent a le pouvoir de se trouver con
try { work(); } catch(FlemmeExeption $e) { sleep(84600); }