nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005
-
5 nov. 2004 à 17:38
nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005
-
6 nov. 2004 à 00:45
Je suis sure que c'est tout con, mais là je tourne en rond !! Le prob : je cherche a recupere dans une ligne de texte des mots ayant des carractères spéciaux afin de les traiter 1 par 1 . Exemple :
$texte = "je suis #un* trou du #cul* et j'assume";
j'aimerais extraire 'un' et 'cul' afin de les traiter et d'obtenir un truc du genre:
$texteApresTraitement = "Je suis au trou du monde et j'assume";
voila tout,
J'ai essayer explode, mais je ne suis pas sure d'etre sur la bonne voie... Un petit peu d'aide serait le bienvenue
Merci.
ps; désolé pour les exemple, mais faut bien rigoler un peu :big)
nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005 5 nov. 2004 à 20:00
Merci pour ton aide :) , mais en fait non, je ne peut pas faire ça parceque je ne connais pas le texte à l'avance... Ni même en quoi il sera transformé, puisque ça depend du mot...
Ce qu'il fadrait au juste c'est qu'a chaque fois qu'il ya un mot entouré de # et * dans $texte, il soit autamtiquement transformé ; en "truc" par exemple.
C'est cette parti qu'il me faut résoudre. pfff prise de tête.
nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005 5 nov. 2004 à 20:59
Oui oui, en fait c'etait mon idée de départ, maintenant, ce qui me pose probleme (c'est la ou j'ai du mal a m'explique :oX ) C'est que tout ne doit pas etre transformer en "truc", mais en un autre mot qui depend de celui qui est entre # et *. Ce qui aurait ete simple si il n'y avait qu'un seul mot entre # et * , mais il peut y en avoir plusieurs...
Si cela avait ete un fichier .txt, je l'aurais parcouru et j'aurais a chaque fois changé ce qu'il fallait puis réécrit le fichier .txt avec les nouvelle lignes, mais je ne sais pas comment faire pour parcourir $texte... Pff je ne sais pas si je suis plus claire..?
Merci en totu cas pour ton aide (si si merci ;o) )
cs_Anthomicro
Messages postés9433Date d'inscriptionmardi 9 octobre 2001StatutMembreDernière intervention13 avril 20078 5 nov. 2004 à 21:11
Oui alors là tu es bonne pour une génération de tableau dynamique en fonction de ton fichier texte et ensuite tu appliques un strtr à partir du tableau que tu as généré.
while(!eof($fichier))
{
$ligne=fgets($fichier,250); //TU OBTIENS LA LIGNE
$mots=explode('|',$ligne); //TU RECUPERES LE MOT A PARSER ET LE MOT A REMPLACER
//ENSUITE TU CONSTRUIS TON TABLEAU CONTENANT LE MOT A PARSER => LE MOT A REMPLACER
}
//TU REMPLACES ENSUITE VIA STRTR TOUT CE QUI EST CONTENU DANS LE TABLEAU GENERE DYNAMIQUEMENT TOUT A L'HEURE
nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005 5 nov. 2004 à 21:24
hep hep hep ! j'ai dit si cela avait ete un fichier. txt, mais ce n'en ai pas un c'est juste une variable contenant du texte et parmis ce texte certains mots entoure de # et *.
Grrr, je suis vraiment nul pour m'expliquer ... Je devrait faire un programme pour ça . lol
coucou747
Messages postés12303Date d'inscriptionmardi 10 février 2004StatutMembreDernière intervention30 juillet 201244 5 nov. 2004 à 23:36
"Si cela avait ete un fichier .txt, je l'aurais parcouru et j'aurais a chaque fois changé ce qu'il fallait puis réécrit le fichier .txt avec les nouvelle lignes, mais je ne sais pas comment faire pour parcourir $texte... Pff je ne sais pas si je suis plus claire..? "=> Bon je te donnes une solution conne, mais c'ets une solution : tu remplaces les espaces par des retoures à la ligne, tu écrit ta variable dans un fichier txt... et ensuite t'as l'instruction file qui te fait le tableau... Sinon, tu peux chercher avec substr(variable, pos_depart, longueur); les espaces... ça donnerais ça en javascript :
a=0;
for (i=0 ; i<ttmotclee.length;i++){
if ( ttmotclee.charAt(i)==" "){
mot_cle[nmotclee]=ttmotclee.substring(a,i);
nmotclee++;
a=i+1;
}
}
c'ets du javascript faut "reformuler" mais ce ne sont pas des languages si éloignés...
nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005 6 nov. 2004 à 00:07
Je vous remercie, je crois être sur la bonne voie.... Que penssez vous de :
function lexique($Texte)
{
$Tmp_Tb = explode( ' ', $Texte );
$Tmp_Count = 0;
$Tmp_O = '';
while( list(,$v) = each($Tmp_Tb) )
{
$Tmp_O=ereg_replace('`\#(.+?)\*`sim','truc',$v);
$Tmp_O .= $v.' ';
}
return $Tmp_O;
}
Je n'ai pas encore testé, mais ça me parrait etre la route à suivre... Hein? :big)
nicoxidine
Messages postés31Date d'inscriptionvendredi 5 novembre 2004StatutMembreDernière intervention30 juin 2005 6 nov. 2004 à 00:16
je vais essayer de faire un explode avant l'ereg, pour verifier si le mot commence par # ensuite, si c le cas, je ferait ereg replace... pour l'instant je ne voit pas d'autre solutions...
Je penssais pas que je passerais autant de temps la dessus pff lol