Page 1 sur 1
Problème avec une chaine de caractère
Posté : 29 août 2013, 01:51
par lacfab
Bonjour,
J'ai un petit soucis avec une chaine de caractère.
Je veux faire un script qui afficherait un lien vers une galerie ...
Pour cela je veux qu'on mettant le texte [GALERIE-5], que la fonction me ressortent "5".
Je galère avec toutes les fonctions de chaines ... quelqu'un a une idée pour m'aider ?
Merci d'avance.
Re: Problème avec une chaine de caractère
Posté : 29 août 2013, 08:16
par xTG
Regardes du côté de la fonction
sscanf, c'est le moyen le plus aisé pour sortir des informations d'une chaîne dont tu connais le format.

Re: Problème avec une chaine de caractère
Posté : 29 août 2013, 23:34
par lacfab
Alors oui c'est une bonne piste, mais mon [GALERIE-XX] se trouve dans une grande chaine de caractère. Je ne veux repérer QUE cette balise, et une fois repérée pouvoir récupérer le nombre décimal qu'elle contient.
Re: Problème avec une chaine de caractère
Posté : 30 août 2013, 08:45
par sirakawa
Bonjour,
Est-ce que:
[GALERIE-XX]
les [] existent dans la chaîne :
oui : sont uniques?
non:
est-ce que GALERIE est unique dans la chaîne?
oui : solution assez simple
non: comment trouver la bonne expressions? (contextte....)
Re: Problème avec une chaine de caractère
Posté : 30 août 2013, 15:01
par Pitet
Salut,
Voici un exemple de solution :
<?php
$chaine = 'ksqdj qskdjh qsjkdh qsjd [GALERIE-5] qskjh qkjhqs kdjqsh kdqsu qksjd [GALERIE-19] qskgh qskjdhqs kdjqhs kjdqs';
$mesGalleries = array();
$findGallery = TRUE;
$start = 0;
while ($findGallery) {
// position du début du tag [GALERIE-<num>]
$posStartTag = strpos($chaine, '[GALERIE-', $start);
if ($posStartTag !== FALSE) {
// position de la fermerture du tag ]
$posEndTag = strpos($chaine, ']', $posStartTag);
// taille de <num>
$lenghtToPosEndTag = $posEndTag - $posStartTag;
// numéro de la galerie
$galleryNum = substr($chaine, $posStartTag + 9, $lenghtToPosEndTag - 9);
$mesGalleries[] = $galleryNum;
// on place le curseur pour rechercher la prochaine galerie
$start = $posEndTag;
} else {
$findGallery = FALSE;
}
}
var_dump($mesGalleries);
?>
Bonne journée
Re: Problème avec une chaine de caractère
Posté : 04 sept. 2013, 20:35
par sirakawa
Rien d'étonnant :
elle a du caractère; si elle avait des caractères ça irait mieux et sans souci ou sans soucis.