| |||||
| Dernière réponse | |
|---|---|
| Sujet : [php] Comment découper une chaoine avec plsusieurs séparateurs.... | |
| XKobal | MErci bcp !!!!!!! |
| Aperçu |
|---|
| Vue Rapide de la discussion |
|---|
| XKobal | MErci bcp !!!!!!! |
| FLY LM |
|
| XKobal | C'est impeccable, ça marche nickel....
Merci 1000 fois.... Dis moi tu connaitrais pas une doc bien faite , voir un bouquin assez pointus sur les expressions régulières, car ça reste un grosse lacune pour moi .... |
| FLY LM | Oups, j'm'a trompé, j'ai cliqué deux fois...
@+ [edtdd]--Message édité par fly LM--[/edtdd] |
| FLY LM |
[edtdd]--Message édité par fly LM--[/edtdd] |
| FLY LM |
|
| XKobal |
|
| FLY LM | Aller voilà un script qui devrait t'aider :
************************************************************ // La chaine où il faut effectuer les changements... $chaine ="Basé sur NCSA Mosaic. NCSA Mosaic(TM) a été développé par le National Center for Supercomputing Applications à l'Université de l'Illinois à Urbana-Champaign. Distribué sous contrat de licence par Spyglass, Inc. Contient des logiciels de sécurité de RSA Data Security Inc. Des parties de ce logiciel sont basées partiellement sur le travail de Independent JPEG Group. Contient une licence de logiciel client SOCKS accordée par Hummingbird Communications Ltd. Contient une licence de logiciel ASN.1 accordée par Open Systems Solutions, Inc. Les composants multimédias, notamment Indeo(R), de logiciels vidéo, Indeo(R) audio et d'effets pour la création de sites Web sont fournis par Intel Corp. La version Unix contient une licence de logiciel accordée par Mainsoft Corporation. Copyright (c) 1998 Mainsoft Corporation. Tous droits réservés. Mainsoft est une marque déposée de Mainsoft Corporation. Avertissement : ce logiciel est protégé par la loi relative au droit d'auteur et par les conventions internationales. Toute personne ne respectant pas ces dispositions se rendra coupable du délit de contrefaçon et sera passible des sanctions pénales prévues par la loi."; // Construire deux tableaux, -> faire un petit script pour cela, surtout si tes termes sont stockés en DB // // Exemple : // // $connect = @mysql_connect("SQL_HOST","USER","PASSWORD" ); // $cfgBase = "tabase"; // $query = "SELECT mot,lien FROM table_terme"; // $result = mysql_db_query ($cfgBase,$query) or die ("Erreur de connexion à la base de données" ); // $i=0; // While($row = mysql_fetch_object($result)){ // $pattern[$i]='\'('.$row->mot.')\'i'; // $replace[$i]='<a href="'.$row->lien.'" target="_blank"><font color="#FF0000">$1</font></a>'; // ++$i; // } // // Un qui contient les motifs de reconnaissance // L'autre qui contient les expressions de remplacement $pattern[0] = '\'(LICENCE)\'i'; //Le i rend la reconnaissance insensible à la casse. $replace[0]= '<a href="http://www.hardware.fr/" target="_blank"><font color="#FF0000">$1</font></a>'; //$1 est une référence arrière (PHP ne cherche pas à l'évaluer car ma chaine est entre 'simple quote'), elle correspond à l'expression entre parenthèses (dites capturantes !!!) dans le motif de reconnaissance. $pattern[1] = '\'(intel)\'i'; $replace[1]= '<a href="http://www.intel.fr/" target="_blank"><font color="#FF0000">$1</font></a>'; $pattern[2] = '\'(open systems solutions)\'i'; $replace[2]= '<a href="http://www.lycos.fr/" target="_blank"><font color="#FF0000">$1</font></a>'; $chaine2 = preg_replace($pattern,$replace,$chaine); //La Regexp PCRE qui s'occupe de tout !! echo "<br>".$chaine2."<br>"; //affichage de la chaine modifiée ************************************************************ @+ |
| XKobal |
|
| FLY LM | Le motif de ta RegExp est mal écrit, faut pas chercher plus loin... |
| XKobal |
|
| XKobal |
|
| stef_dobermann | pas quand on a l'experience :lol: |
| FLY LM | La casse, la case c'est pour faire Ungologolo...
-> eregi est insensible à la casse !!! Mais attention, les Regexp peuvent vite devenir un cauchemard pour les serveurs, si elles sont mal optimisées, sa rame et tu peux te tapper des "Time Out"... @+ |
| stef_dobermann | t'as plus qu'a traduire
c pour ca que je t donner la commande slpit tout à l'heure, elle existe aussi en PHP :D il te suffit de trouver les bonnes fonctions PHP comme ereg_replace("/[\n_r]/"," ",$text) qui est à peut pret equivalent à $texte =~ s/[\n\r]/ /sg enfin à vérifié Vola :D |
| XKobal |
|
| FLY LM |
|
| XKobal | Si seulement je pouvais le faire en PErl !!!!!
Mais le contrat pour ce site stipule : PHP !!!!! pffffffff :fou: |
| stef_dobermann |
|
| XKobal | Je galère durement... C'est pas mon boulot en plus... Moi ej fait du réseau d'habitude... et je bloque durement sur ça.
Si vous connaissez une solution aidez moi... |
| stef_dobermann | j'aurais dit de monter un tableau de hachage (en Perl) ou une table de correspondance mais je ne connais pas de solution
PS : la case est je crois la différenciation entre les majuscules et les minuscules |
| XKobal | EUh, en fait, j'ai encore un peu besoin d'aide...
Donc, c'est bon, maintenant mon texte est découpé. J'ai fait cela pour comparer chaque mot à un lexique dans une base de donnée et si jamais le mot est le même alors il remplace par un lien. Mais je bloque sur certaine choses. Comment ne pas tenir compte de la casse sans que par exemple si on a le mot "ont" dans le lexique, le mot "sont" ne soit pas pris pour le même mot avec le s... Je sais pas si je suis clair !!!! En gros, j'ai besoin d'un script pour parser un bloc de texte contenu dans une base et créer un lien sur chaque mot de se texte qui est contenu dans mon lexique !!!!! |
| stef_dobermann | bon si c pour boulot on parle constructif
tu veux faire koi? données en entrés => données en sortie |
| stef_dobermann | Je ne connais pas tout et suis loin de tout connaitre
Manque d'expérience en PHP oui c claire Mon frere et moi une grande histoire :pt1cable: |
| XKobal | Merci pour vos réponses, c'est parafit !!!!!! =) |
| FLY LM | Pas c'est super, tu connais tout !!!
Manque d'expérience alors ??? J'plaisante :lol: :lol: :lol: Sacré loustiques toi et ton frère !!! |
| dropsy |
|
| stef_dobermann | je connais asses bien le lmanguage Perl mais cette bib !! |
| FLY LM |
|
| stef_dobermann | je connais asses bien le regxp dit aussi expression réguliére
mais je ne connais pas cette fonction en PHP preg_match_all |
| FLY LM | J'adore les Regexp :
<?php $chaine = "titi? toto : tata , tutu. ;tyty!"; preg_match_all("/([^\,|;|:|!|?|.|\s]+)/",$chaine,$reg,PREG_PATTERN_ORDER); $i=0; while(strlen($reg[1][$i])!=0) { echo trim($reg[1][$i])."<br>"; ++$i; } ?> |
| stef_dobermann | ya une commande qui s'appelle split et une autre explode
essai le |
| XKobal | Voilà je voudrait découper un morceau de texte qui comporte plusieurs séparateurs (",;:!?. " ) afin d'isoler chaque mot. J'ai essayé avec strtok, mais le pb, c'est que lorsque 2 séparateur se suive, et bien la boucle s'arrette....
Merci de m'aider.. C'est pour le boulot. |




