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

Langage PHP Discussion :

fonction raccourci en regex


Sujet :

Langage PHP

  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut fonction raccourci en regex
    j'ai vu sur le forum cette fonction de raccourci telle que celle -ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    $chaine="
    Cet adaptateur secteur neuf box Trio 16V 3.9A, muni de 8 <br> connecteurs sert à remplacer votre ancien bloc d'alimentation neuf box trio .
    Notre adaptateur neuf box trio 16V 3.9A est compatible avec tout appareil électrique demandant une voltage et ampérage inférieur à 16V 3.9A max.
    Cette alimentation neufBox trio vous donne en plus la possibilité de choisir d'autres voltages supérieurs ou inférieurs à 16V 3.9A. (Voir les infos techniques)
    Cet article peut être aussi appelé adaptateur neuf box TV, adaptateur sfr neuf box ou bloc alim neufbox trio 70W 16 Volt 3.9A .
    ";
    function raccourci1($chaine,$len)
    {
    	if (strlen($chaine) >= $len) {$chaine = substr($chaine,0,$len) . "  ..." ;}
     
    	return $chaine;
    }
    l'inconvenient c'est que ca coupe en plein milieu d'un mot .
    donc j'aimerais que la phrase en raccourci se termine soit
    sur le dernier point trouvé
    soit sur dernier saut de ligne
    soit en fin du dernier mot
    je pensais insérer avant cette ligne return $chaine; ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $chaine=preg_match("#(.*)(\.\b|\s|\b)#mi", $chaine, $match);
    mais je n'arrive pas à lui demander de prendre en compte que le dernier
    je sais pas si vous avez une idée .
    merci

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    pas besoin de regexp tu peux faire comme ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    function raccourci1($chaine, $len)
    {
        if(strlen($chaine) >= $len)
        {
            $last = strrpos(substr($chaine, 0, $len), ' ');
            $chaine = substr($chaine, 0, $last) . ' ...' ;
        }
     
        return $chaine;
    }

  3. #3
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    c'est gentil stealth35.dans ton cas par exemple ca ne prend pas en compte ni le dernier point , ni le dernier mot precis comme par exemple si je veux que ca se termine par le mot TV ect..
    en gros une fonction plus générique et adaptée à plusieurs cas possible .
    En fin j'espère me faire comprendre

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    c'est gentil stealth35.dans ton cas par exemple ca ne prend pas en compte ni le dernier point , ni le dernier mot precis comme par exemple si je veux que ca se termine par le mot TV ect..
    en gros une fonction plus générique et adaptée à plusieurs cas possible .
    En fin j'espère me faire comprendre
    rajoute un paramètre pour le strrpos

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    rajoute un paramètre pour le strrpos
    on ne peut pas mettre des ou comme dans les reg avec strrpos il me semble

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    on ne peut pas mettre des ou comme dans les reg avec strrpos il me semble
    et quelle choix va être en priorité ? dans ton cas le OU ne marche pas

  7. #7
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    et quelle choix va être en priorité ? dans ton cas le OU ne marche pas
    le dernier saut de ligne ou le dernier espace

  8. #8
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par bigs3232 Voir le message
    le dernier saut de ligne ou le dernier espace
    ajoute le PREG_OFFSET_CAPTURE pour avoir les positions

  9. #9
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    ajoute le PREG_OFFSET_CAPTURE pour avoir les positions
    pas bete , vais tester .merci

  10. #10
    Membre très actif
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    627
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 627
    Par défaut
    bon je crois que j'abandonne car je tourne en rond.trop compliqué pour moi

Discussions similaires

  1. fonction raccourci
    Par pravine dans le forum Langage
    Réponses: 1
    Dernier message: 15/07/2010, 15h07
  2. mettre une fonction dans une regex
    Par IP-Fix dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 17/02/2007, 18h47
  3. Utilisation des fonctions regex
    Par ellow dans le forum C
    Réponses: 2
    Dernier message: 05/06/2006, 22h52
  4. Réponses: 2
    Dernier message: 04/08/2005, 11h16
  5. [String] pb fonction String[] split(String regex)
    Par Kyti dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2005, 13h06

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