remplacement systématique avec pre_replace

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : remplacement systématique avec pre_replace

par Olga » 13 mai 2005, 16:56

bon eh bien merci à tous pour votre aide !

(je bosse aussi lundi :( )

par zeus » 13 mai 2005, 13:33

c klr ca laisse pas bcp de tps (enfin ca dp du cahier)
et pour t enfoncer un pe moi je travaille pas lundi
Heureusement le CDC est pas trop important !!!!

Mais il faut pas que je traîne trop !!! C'est pour ça que mon boss me pousse un peu !!!!

Il y aurait pas eu ce CDC, j'aurais peut être hésité à venir !!! Mais ca résoud la question !!! Et puis en tant que stagaire, ca fait pas de jouer l'absenteisme !!! :lol:

par zeus » 13 mai 2005, 13:17

Merci Ripat !!!! :agenouille:

J'avais pas le temps de voir si il fallait que j'explique ce qu'est qu'une ER et a trouver la bonne !!!!

mici mici mici mici mici !!!!!!! :pouce: :pouce: \:D/

par Ripat » 13 mai 2005, 12:26

Allez Zeus, toi qui aime les regex:
$txt = preg_replace('#\b'.$motcle.'\b#i', "<span style='background-color:#DEDEDE'>$0</span>", $txt);
Dans ce cas, elle seront sans doute plus rapides que les manipulation de chaînes. Autre avantage: l'assertion \b qui permet d'isoler $motcle comme mot (éventuellement suivit d'une ponctuation)

Exemple ici

par seayoung » 13 mai 2005, 12:21

c klr ca laisse pas bcp de tps (enfin ca dp du cahier)
et pour t enfoncer un pe moi je travaille pas lundi :lol: :lol: :lol:

par zeus » 13 mai 2005, 12:02

C'est surtout que on me demande de faire un Cahier des charges après le dev et qu'il doit être prêt pour le 18 !!!

heureusement qu'on travaille lundi !!! :cry: :cry:

par seayoung » 13 mai 2005, 11:53

< HORS SUJET>
C'est dure la vie o taf Zeus :twisted:
</ HORS SUJET>

par zeus » 13 mai 2005, 11:41

Je te donne l'algo et je te laisse chercher les fonctions PHP correspondante parce que mon boss me presse un peu aujourd'hui !!!


chaine = minuscule(chaine)
motcle = minuscule(mocle)
//cherche la position de la 1ere lettre de motcle dans chaine
//avec les chaines de départ, remplace le mot de longeur (taille de motcle) par motcle avec les balises HTML

renseigne toi sur subStr(), stristr(), strPos() ...

par Olga » 13 mai 2005, 11:13

Oui, on forcant ton texte en minuscule par exemple.
$motcle = strtolower($motcle);
$str_chaine = strtolower($str_chaine);
$str_chaine = str_replace($motcle, "<span style='background-color:#DEDEDE'>$motcle</span>", $str_chaine);
Mais la chaine que tu vas obtenir seras elle aussi entierement en minuscule
J'ai fait exactement ça avec strtolower(), mais mes chaînes ont des majuscules et doivent les garder :?

par zeus » 13 mai 2005, 11:08

Oui, on forcant ton texte en minuscule par exemple.
$motcle = strtolower($motcle);
$str_chaine = strtolower($str_chaine);
$str_chaine = str_replace($motcle, "<span style='background-color:#DEDEDE'>$motcle</span>", $str_chaine);
Mais la chaine que tu vas obtenir seras elle aussi entierement en minuscule

par Olga » 13 mai 2005, 11:03

merci Zeux pour ton aide. Ca marche. :wink:

Par contre, ça reste sensible à la casse. la fonction str_ireplace n'étant dispo qu'avec PHP5, y a-t-il une alternative pour rendre str_replace insensible à la casse en PHP4 ?

par zeus » 12 mai 2005, 16:38

Ce que j'appelle $str_chaine, c'est ce le texte dans lequel tu veux changer la couleur du mot clé !!!

Si tu as insérer cette ligne sans rien faire d'autre dans ton code et sans chercher à la comprendre, il y avait 99,9% de chance que ça ne marche pas !!!

Je veut bien t'aider mais il faut que tu t'aide aussi : ne te contente pas de recopier ce qu'on te donne, essaye de le comprendre et pose des questions. Comme ca, tu n'aura pas à revenir poser la même question !!!
$str_chaine = str_replace($motcle, "<span style='background-color:#DEDEDE'>$motcle</span>", $str_chaine);

par Olga » 12 mai 2005, 16:31

ça me met ça comme erreur...
Undefined variable: str_chaine in .../php] #-o

par zeus » 12 mai 2005, 12:38

Essaye ça :
$str_chaine = str_replace($motcle, "<span style='background-color:#DEDEDE'>$motcle</span>", $str_chaine);

remplacement systématique avec pre_replace

par olga » 12 mai 2005, 12:35

Bonjour,

je galère un peu (voire beaucoup) sur un petit détail de remplacement de chaine. Le problème a sûrement déjà été expliqué mais je n'ai pas trouvé de réponse concluante. Je m'en escuse par avance... :wink:


Voilà ce que j'aimerais qu'il se passe dans ma page...
j'ai un formulaire de recherche où je tape un mot clé. Je récupère la variable ($motcle), j'exécute ma requête SQL, tout s'affiche correctement. Jusque là, ça va.

En fait, je ne vois comment faire pour par exemple souligner chaque occurence du mot recherché (et donc de la chaine $motcle) dans ma page de résultats et faire en sorte que chaque fois qu'apparaît la chaine, elle soit soulignée.
en gros, remplacer
$chaine= "$motcle"
par
$chaine="<span style="background-color:#DEDEDE">$motcle</span"

et là, je galère... :cry:

merci pour votre aide.

olga