|
Smarty
WARNING: All discussion is moving to https://reddit.com/r/smarty, please go there! This forum will be closing soon. |
|
View previous topic :: View next topic |
Author |
Message |
zainjar Smarty n00b
Joined: 22 Jan 2009 Posts: 2
|
Posted: Thu Jan 22, 2009 9:05 am Post subject: Couper et concatener une variable ? |
|
|
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 |
|
Back to top |
|
isavdz Smarty n00b
Joined: 01 Sep 2009 Posts: 2
|
Posted: Tue Oct 12, 2010 2:53 pm Post subject: |
|
|
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 |
|
Incal Smarty n00b
Joined: 15 Oct 2010 Posts: 4 Location: Jacou - France
|
Posted: Sat Oct 16, 2010 11:53 am Post subject: |
|
|
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 |
|
Gowser Smarty Pro
Joined: 19 Feb 2008 Posts: 104 Location: Nantes (France)
|
Posted: Wed Oct 20, 2010 10:55 am Post subject: |
|
|
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 (penser à modifier vos titres de post en résolu !) |
|
Back to top |
|
|
|
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
|