Fonction str_replace()

Mammouth du PHP | 686 Messages

25 avr. 2007, 20:03

Est ce qu'il y a moyen avec cette fonction de detecter les : d' et l' ?
parce que j'ai posé
	$mots = str_replace(" d'", "", $mots);
	$mots = str_replace(" l'", "", $mots);
Mais je pense que du fait qu'il n'y a pas d'espace entre d' et le mot il ne fait pas la modif
Ya t-il une alternative ? C'est pour un moteur de reccherche

Mammouth du PHP | 686 Messages

26 avr. 2007, 21:15

quelqun peut m'aider ?

Mammouth du PHP | 693 Messages

26 avr. 2007, 21:29

essaye explode().

Sinon, il doit y avoir des fonctions qui donne l'emplacement d'une sous chaine dans une chaine, il faut que tu regarde dans toutes les fonctions.

EN passant, il me semble que pour un délait d'une heure le soir, tu peux comprendre qu'il n'y ait personne pour te répondre...

Mammouth du PHP | 991 Messages

26 avr. 2007, 22:37

certainement un regex ...
DevOps, Symfony4, Hoa

Avatar du membre
Modérateur PHPfrance
Modérateur PHPfrance | 10684 Messages

26 avr. 2007, 23:55

str_replace() remplace une chaine de caractère par une autre, il ne se soucis pas de savoir ce qu'il y a autour (espace ou pas). S'il trouve la chaine, il la remplace, ça s'arrête là :)

Si dans ton cas, le " d'" et le " l'" ne sont pas supprimés de la chaine après ce bout de code, c'est que cette chaine : "espace, lettre d ou l en minuscule, apostrophe" n'est pas trouvée.

Affiche $mots avant et après l'opération.. m'étonnerais pas que ton $mots soit une valeur récupérée d'un formulaire et addslashée par php, laissant trainer un antislash devant l'apostrophe.. ou alors une question de casse, ou peut être de l'espace qui précède ?
Ce n'est pas en améliorant la bougie que l'on a inventé l'ampoule...

Mammouth du PHP | 684 Messages

27 avr. 2007, 00:45

$mots = str_ireplace("d\'", "", $mots);
Mais si c'est quelqu'un qui tape le mot, faudra faire du nettoyage de chaine de caractères.

Si je t'envois c'est chaine, ca passera moins bien :

Code : Tout sélectionner

" d ' essai "
En générale je commence pas faire le nettoyage des espaces en trop.
Puis voir pour le nettoyage des accents des lettres.
Et d'autres subtilités, de la langue.
Zigz4g

Mammouth du PHP | 686 Messages

27 avr. 2007, 01:14

Ok, merci effectivement les données proviennent d'un formulaire, je vais essayer ca et je redis le resultat.
Et au passage pour orgerix : le delai si tu y regardes de plus près etait de 1 JOUR et une heure !
C'est pour cela que j'ai relancé la convers.
Encore merci ! J'essaie ca au plus vite pour les slash