détection d'un mot dans une chaine qu. que soit sa forme (Chat chAt) - PHP - Programmation
Marsh Posté le 30-04-2010 à 08:36:06
pourquoi tu ne fais pas un strtolower sur toute ta chaine
http://php.net/manual/en/function.strtolower.php
Marsh Posté le 30-04-2010 à 09:36:09
en cherchant 2 secondes dans l'aide de php, t'aurais trouvé ça : http://www.php.net/manual/en/function.str-ireplace.php
Sinon, accesssoirement, y'avait les expressions régulières qui faisaient ça très bien aussi.
Marsh Posté le 30-04-2010 à 17:10:24
antac a écrit : pourquoi tu ne fais pas un strtolower sur toute ta chaine |
parce que je veux conserver la chaine telle que je l'ai trouvée.
Marsh Posté le 30-04-2010 à 17:17:06
rufo a écrit : en cherchant 2 secondes dans l'aide de php, t'aurais trouvé ça : http://www.php.net/manual/en/function.str-ireplace.php |
Non je pense que vous ne voyez pas ce que je veux faire...
Si j'obtiens le mot "meSSager" dans ma chaine alors que je cherchais "messager" ça va matcher, ce que je voudrais faire, c'est remplacer "meSSAger" par "<b>meSSager</b>" par exemple (donc je garde le même mot avec ses majuscules posées n'importe où...
Effectivement cette fonction (str_ireplace) est pas mal, mais ce n'est pas encore ce que je cherche
Marsh Posté le 04-05-2010 à 12:08:35
Ben alors il te faut utiliser soit les expressions régulières, soit faire un tableau de toutes les chaînes à remplacer, une boucle sur ce tableau qui recherche dans le texte à l'aide de stripos (http://www.php.net/manual/en/function.stripos.php ) et de faire un str_replace de l'occurrence trouvée par cette occurrence encadrée des balises <b>
J'ai développé un truc similaire dans mon soft Astres (cf signature) : remplacer des mots de la description d'un ticket par des liens hypertextes (donc balise <a> ) vers d'autres sites web (wiki, GLPI...). En plus, j'ai implémenté une option : soit on remplace toutes les occurrences d'un mot par son lien, soit uniquement la première occurrence.
Donc, faut que tu regardes le fichier .php du répertoire /Astres/Plugins/PHPLinkToInfosSTOPlugin/ (ou /Astres/Plugins/PHPLinkToInfosPlugin/ mais lui recherche dans plusieurs BD donc code plus complexe).
Marsh Posté le 30-04-2010 à 07:45:24
voila, je détecte un mot dans une chaine et je le mets en gras avec ajout d'un lien etc etc
http://88.163.71.238/index.php?input=pourquoi
marche
=> j'ai fait une boucle pour remplacer le mot si il est trouvé comme saisi par l'utilisateur et une autre pour le cas où la première lettre est en majuscule
http://88.163.71.238/index.php?input=florianep
marche pas
j'ai un florianeP, majuscule qui traine n'importe où dans la chaine
j'applique un truc dans ce style :
Mais voilà, le deuxième cas plante car j'ai une majuscule qui traine n'importe où dans le code...
existe-t-il une fonction qui pourrait remplacer le mot quelle que soit la casse ?
Merci !
Message édité par erwan83 le 30-04-2010 à 08:00:30
---------------
http://www.ypikay.com