Tronquer un texte et ignorer certaine chaine de texte
netwebzone
Messages postés55Date d'inscriptiondimanche 12 décembre 2004StatutMembreDernière intervention22 août 2008
-
29 déc. 2004 à 15:08
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 2007
-
31 déc. 2004 à 12:15
Bonjour,
J'ai une fonction qui permet de tronquer un texte si il est supérieur à un certain nombre de caractère..
Seulement, j'aimerais également qu'elle ne prenne pas en compte certaine chaine du style [mail] car c'est du bbcode...
C'est à dire qu'elle ne doit pas compter ces chaines lorsqu'elle compte le nombre de caractères..., qu'elles les "sautent" si on peut dire ca comme ca...
Comment faire ?
Je ne sais pas si vous m'avez compris mais bon...
malalam
Messages postés10839Date d'inscriptionlundi 24 février 2003StatutMembreDernière intervention 2 mars 201025 30 déc. 2004 à 13:04
Salut,
je reviens...lol.
J'ai peut-etre une solution, mais je ne peux pas la tester, etant au taf, n'ayant pas et ne pouvant pas installer php.
Mais c'est a reflechir...
tu prends $txt_original, tu fais un explode avec les espaces pour avoir un tableau contenant tous les "mots" de ton texte (y compris les bbcodes). Ce sera $tb_original[] par exemple.
Tu fais ton extraction des bbcodes.
Tu fais aussi un explode de ce $texte, tu auras un $tb[] avec uniquement chaque mot de ton texte tronque.
Dans $tb_original, tu recherches tes bbcodes et tu gardes : le bbcode et son index (donc son niveau dans la tableau).
Ensuite, ce que tu as a faire, c'est replacer les bbcodes au bon index dans $tb[]. Les index seront les memes puisque le texte n'est tronque qu'a la fin. Si un index depasse l'index maximum de ton $tb[], c'est que le texte entoure de 2 tags bbcodes a ete tronque aussi...donc la, a toi de voir, mais la meilleure solution a mon avis est de replacer le 1er bbcode dont l'index depasse le plus grand index de $tb[]
heu...exemple, parce que ce sera plus clair lol :
T'as ce texte original :
Salut, je m'appelle Henri, mon adresse mail est [email] henri@hotmail.com /email
ton texte est tronque a :
Salut, je m'appelle Henri, mon adresse mail est henri@hot...
1er tableau : index 10 max
2eme : index 8 max
position du dernier bb code : index 10.
Ben tu le replaces a la fin, et tu places le 1er tag a son index (8) :
Salut, je m'appelle Henri, mon adresse mail est [email] henri@hot /email ...
Bon je me rends compte que (je ne connais pas le bbcode) il n'y a probablement pas d'espaces entre les tags bbcode et le texte qu'ils entourent...donc l'explode par l'espacement n'est peut-etre pas suffisant. Mais je pense qu'il y a une idee.
netwebzone
Messages postés55Date d'inscriptiondimanche 12 décembre 2004StatutMembreDernière intervention22 août 2008 30 déc. 2004 à 19:55
lol merci malalam :) même si j'ai pas tout compris ! lol !
Ca m'a l'air compliqué, je ne pense pas m'y connaitre assez, surtout concernant le implode...
Enfin je vais essaye de lire et relire ton post, lol
Encore merci de ton aide...
et de celle des autres aussi :)
netwebzone
Messages postés55Date d'inscriptiondimanche 12 décembre 2004StatutMembreDernière intervention22 août 2008 31 déc. 2004 à 10:05
Salut,
JE viens d'avoir une autre idée, il faudrait voir avant si le texte contient les chaines de bbcode et on ajoute donc le nombre de caractères correspondant au nombre de caractère pour tronquer... nan ?
Comment fait-on pour voir si un texte contient une chaine ?
Par exemple,
$texte = bla bla bla bla bla bla Comment fait-on pour voir si $texte contient et ?
Merci
A+
Vous n’avez pas trouvé la réponse que vous recherchez ?