Smarty Forum Index Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon.

Couper et concatener une variable ?

 
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French
View previous topic :: View next topic  
Author Message
zainjar
Smarty n00b


Joined: 22 Jan 2009
Posts: 2

PostPosted: Thu Jan 22, 2009 9:05 am    Post subject: Couper et concatener une variable ? Reply with quote

Bonjour à tous !

J'essaie depuis un certain temps de faire qq chose d'extremement simple en php mais qui me semble impossible en smarty !

Je vous expose mon problème : j'ai une variable du type "1.5.12" (qui correspond à l'arborescence de mon site, et donc le nombre de chiffre est illimité. Je pourrais très bien avoir en variable "15.568.1.3.42" ...)

Mon but est de couper cette variable au premier "." et de récupérer la fin de la variable. Une fois ceci fait, je souhaite la concaténer à un chiffre que je placerai devant (avec un "."), ce qui me donnerai ce résultat : "2.5.12"


J'ai trouvé en smarty deux fonctions qui pourrait m'aider : "truncate" et "cat".
Pour "truncate", il me faudrait la fonction inverse car cette fonction permet de récuperer seulement le début ...
Pour "cat", je n'ai pas encore compris comment mettre ma valeur en début de chaine et non en fin de chaine !


Dans la logique, en php j'aurai fait un "split(.)", récuperer mon tableau à partir de l'entrée [1] et j'aurai crée une nouvelle variable en concaténant ma valeur avec la fin du tableau !


Si vous avez une réponse à ma question, ca m'aiderai beaucoup Smile
Back to top
View user's profile Send private message
isavdz
Smarty n00b


Joined: 01 Sep 2009
Posts: 2

PostPosted: Tue Oct 12, 2010 2:53 pm    Post subject: Reply with quote

Bonjour,

Avez-vous réussi à faire ce que vous vouliez faire ?
car la solution m'intéresse beaucoup.

Voici mon problème.
J'ai une chaine qui ressemble à ça : "10;NEN" ou "5;SE" ....
Je voudrais récupérer ce qu'il y a avant le ";" et après le ";" mais je n'y arrive pas...

Bonne journée
Isabelle
Back to top
View user's profile Send private message
Incal
Smarty n00b


Joined: 15 Oct 2010
Posts: 4
Location: Jacou - France

PostPosted: Sat Oct 16, 2010 11:53 am    Post subject: Reply with quote

Dans le dernier exemple de la doc de truncate il affiche bien la fin de la chaine. A décortiquer et faire des essais.

Le cat sert lui a concaténer avec des valeurs dans le template et non pas d'après le contenu de variable.
Back to top
View user's profile Send private message Visit poster's website
Gowser
Smarty Pro


Joined: 19 Feb 2008
Posts: 104
Location: Nantes (France)

PostPosted: Wed Oct 20, 2010 10:55 am    Post subject: Reply with quote

Bonjour,

Voici une solution pour votre problème :

Code:

// on assigne la nouvelle valeur
{assign var='nouvelleValeur' value='2'}

// on assigne une chaine a couper
{assign var='chaineACouper' value="1.2.3.4.5"}

// on determine la premiere coupure a faire (qui nous affiche ici : 1, qui est la position, pas la valeur de la chaine 1.2.3.4.5)
{assign var='positionCoupure' value=$chaineACouper|@strpos:'.'}

// on recupere la fin de la chaine grace a la position (qui nous affiche ici : .2.3.4.5)
{assign var='chaineFin' value=$chaineACouper|@substr:$positionCoupure}

// il ne reste plus qu'a concatener avec la valeur voulue
{$nouvelleValeur|cat:$chaineFin}


Bonne continuation Smile (penser à modifier vos titres de post en résolu !)
Back to top
View user's profile Send private message Send e-mail
Display posts from previous:   
This forum is locked: you cannot post, reply to, or edit topics.   This topic is locked: you cannot edit posts or make replies.    Smarty Forum Index -> Language: French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group
Protected by Anti-Spam ACP