Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1650 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  détection d'un mot dans une chaine qu. que soit sa forme (Chat chAt)

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

détection d'un mot dans une chaine qu. que soit sa forme (Chat chAt)

n°1988921
erwan83
Du Shift DEL tu te méfieras !
Posté le 30-04-2010 à 07:45:24  profilanswer
 

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 :
 

Code :
  1. $url[1] = str_replace($mot2_lettre_1_majus,'<b><u><i><a href="'.$url[0].'">'.$mot2_lettre_1_majus.'</a></i></u></b>',$url[1]
  2. etc etc


 
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
mood
Publicité
Posté le 30-04-2010 à 07:45:24  profilanswer
 

n°1988933
antac
..
Posté le 30-04-2010 à 08:36:06  profilanswer
 

pourquoi tu ne fais pas un strtolower sur toute ta chaine
http://php.net/manual/en/function.strtolower.php

n°1988952
rufo
Pas me confondre avec Lycos!
Posté le 30-04-2010 à 09:36:09  profilanswer
 

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. ;)

Message cité 1 fois
Message édité par rufo le 30-04-2010 à 09:36:47

---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta
n°1989211
erwan83
Du Shift DEL tu te méfieras !
Posté le 30-04-2010 à 17:10:24  profilanswer
 

antac a écrit :

pourquoi tu ne fais pas un strtolower sur toute ta chaine
http://php.net/manual/en/function.strtolower.php


parce que je veux conserver la chaine telle que je l'ai trouvée.


---------------
http://www.ypikay.com
n°1989214
erwan83
Du Shift DEL tu te méfieras !
Posté le 30-04-2010 à 17:17:06  profilanswer
 

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
 
Sinon, accesssoirement, y'avait les expressions régulières qui faisaient ça très bien aussi. ;)


 
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


---------------
http://www.ypikay.com
n°1990127
rufo
Pas me confondre avec Lycos!
Posté le 04-05-2010 à 12:08:35  profilanswer
 

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).


---------------
Astres, outil de help-desk GPL : http://sourceforge.net/projects/astres, ICARE, gestion de conf : http://sourceforge.net/projects/icare, Outil Planeta Calandreta : https://framalibre.org/content/planeta-calandreta

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  détection d'un mot dans une chaine qu. que soit sa forme (Chat chAt)

 

Sujets relatifs
Manipuler une chaine de caractèreTaille d'une chaine dans un pdf (fpdf)
Couper une chaine de caracteressaisir une chaine de carctére
[JAVA] Extraire adresse email d'une chaineRemplacer la nième occurence d'une chaine de caractère par ...
Pb pour rentrer une chaine de caractere dans un tableau !Récupérer les mots séparés par des espaces dans une chaîne de char....
fonction strlen calcule de la longueur de chaineComparaison de chaine de caractères / Question à la con
Plus de sujets relatifs à : détection d'un mot dans une chaine qu. que soit sa forme (Chat chAt)


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR