Précédent   Forum des professionnels en informatique > PHP > Langage > Regex
Regex Forum d'entraide sur les expressions rationnelles PHP. Avant de poster -> FAQ regex, Cours de regex et Sources de regex
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 25/02/2011, 16h18   #1
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 291
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 291
Points : 28
Points : 28
Par défaut fonction raccourci en regex

j'ai vu sur le forum cette fonction de raccourci telle que celle -ci :
Code :
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 :
$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
bigs3232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h33   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
pas besoin de regexp tu peux faire comme ca :

Code :
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;
}
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h43   #3
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 291
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 291
Points : 28
Points : 28
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
bigs3232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 16h48   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 17h13   #5
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 291
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 291
Points : 28
Points : 28
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
bigs3232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 17h23   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 17h57   #7
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 291
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 291
Points : 28
Points : 28
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
bigs3232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 18h03   #8
Modérateur
 
Inscription : septembre 2010
Messages : 7 101
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 101
Points : 8 465
Points : 8 465
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
__________________
http://blog.stealth35.com/
stealth35 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 18h34   #9
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 291
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 291
Points : 28
Points : 28
Citation:
Envoyé par stealth35 Voir le message
ajoute le PREG_OFFSET_CAPTURE pour avoir les positions
pas bete , vais tester .merci
bigs3232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/02/2011, 18h42   #10
Nouveau Membre du Club
 
Inscription : janvier 2010
Messages : 291
Détails du profil
Informations forums :
Inscription : janvier 2010
Messages : 291
Points : 28
Points : 28
bon je crois que j'abandonne car je tourne en rond.trop compliqué pour moi
bigs3232 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h02.


 
 
 
 
Partenaires

Hébergement Web