IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques et frameworks PHP Discussion :

[Smarty] strpos, deuxième occurence en smarty


Sujet :

Bibliothèques et frameworks PHP

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 151
    Points
    151
    Par défaut [Smarty] strpos, deuxième occurence en smarty
    Bonjour !

    Voila mon soucis... je cherche à trouver la deuxième occurence d'une balise fermante </p> dans une string (pour la couper), seulement si la première survient avant 1300 caractères... Cela me paraissait simple (et on me dira surement que le traitement ne doit pas se faire ici.. mais pas le choix), mais j'ai l'impression que l'offset de strpos n'est pas pris en compte.

    Voici le code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    {{assign var="couper_a" value=$element.texte|strpos:"</p>"}}
    {{assign var="test_len" value=$element.texte|substr:0:$couper_a}}
    <div class="boite">
        {{if $test_len|strlen > 1300}}
            <div class="visible">
                {{$element.texte|substr:0:$couper_a}}
            </div>
            <div class="hidden">
                {{$element.texte|substr:$couper_a}}
            </div>
        {{else}}
            {{assign var="couper_depuis" value=$element.texte|strpos:"</p>":$couper_a+4}}
            <div class="visible">
                {{$element.texte|substr:0:$couper_depuis}}
            </div>
            <div class="hidden">
                {{$element.texte|substr:$couper_depuis}}
            </div>
        {{/if}}
    </div>

    Si quelqu'un a une idée ?? En remerciant tout le monde par avance !
    Pierre : abusé, regarde par la fenêtre, les gosses ils passent leur vie à faire du vélo dehors ...
    tom : ils ont pas de pc ou quoi ?

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    188
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Bas Rhin (Alsace)

    Informations forums :
    Inscription : Mars 2006
    Messages : 188
    Points : 151
    Points
    151
    Par défaut
    Je précise que c'est une ancienne version de smarty...
    Pierre : abusé, regarde par la fenêtre, les gosses ils passent leur vie à faire du vélo dehors ...
    tom : ils ont pas de pc ou quoi ?

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juillet 2009
    Messages
    20
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2009
    Messages : 20
    Points : 18
    Points
    18
    Par défaut
    Salut,

    Essaye d'entourer tes variables du délimiteur smarty (double accolade dans ton cas, visiblement), exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    {{$element.texte|substr:0:{{$couper_a}}}}

Discussions similaires

  1. [2017] Récupérer la deuxiéme occurence
    Par samirCA007 dans le forum Développement
    Réponses: 2
    Dernier message: 05/08/2018, 23h53
  2. REmplacer la deuxième occurence dans un fichier
    Par EDrequest dans le forum Langage
    Réponses: 3
    Dernier message: 01/08/2006, 21h34
  3. [MySQL] tableau de données via BDD et Smarty
    Par taly dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 12/01/2006, 16h00
  4. [Smarty] Inclusion de templates
    Par pendragon509 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 11/10/2005, 19h58

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo