'preg_match' qui me fait des misères

Résolu/Fermé
chatvertdusud Messages postés 71 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 14 septembre 2016 - 5 juil. 2015 à 15:34
chatvertdusud Messages postés 71 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 14 septembre 2016 - 5 juil. 2015 à 22:36
Bonjour,

preg_match me trouve un mot qui ne figure pas dans la liste de mots ??
Voici mon script :
$mots = '/\b\/FRAIS DE DOSSIERS|finance|argent|credits|argents|credit|prets|crédit|pret|prêt|prèt|financement|PRET|prêts|céde|Prêt|Aide|argents|Finance|financiers|fonds|FINANCIER|EMPRUNTER|FINANCEMENT|cede|cartouche|offre|gratuit|pret|cède|Cède|financière|banque|financier|PRETS|donné|OCTROYER|OCTROYE|octroye|MARABOUT|PRÊT|octroyé|Prêts|CREDIT|bois|CARTOUCHE|MARABOUT|Marabout|marabout|dettes|Dettes|cédons|Urgent|dette|monsieur|Monsieur|permis|emprunt|Financement|particulier|frais|capital|Banque|besoins|compte|Financer|solution|banques|Remboursement|Empruntez|Financier|bancaire|Bancaire|financement|FINANCE|besoin|projet|rembourser|FINANCIERE|OCTROI|FONDS|DETTES|FINANCIERS|crédits|Banques|Banque|investissements|fonds|financières|intérêt|financiere|projet|projets|Dette|contactez|projet|rejeter|solutions|payer|bancaires|Crédits|Témoignage|investissement|Massey Ferguson|Octroie|des crédits|crédit\b/i'; 
if(preg_match($mots, $string, $matches)){
echo " mauvais mot ";
}else{
echo "";
}


le script fonctionne très bien mais sur cette phrase "echange mercedes 208 cdi" il m'indique qu'il y a un mauvais mot ?? malgré qu'aucun ne figurent dans la liste.

Avez-vous une idée car j'ai passé des jours à chercher et je ne vois pas ...
j'ai rajouté \b, dans le masque mais toujours pas bon.
https://www.php.net/manual/fr/function.preg-match.php

Merci

1 réponse

jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 4 649
5 juil. 2015 à 16:46
Bonjour,

Je viens de tester l'expression... et elle me semble correcte....

As tu essayé de faire un print de $matches ?

if(preg_match($mots, $string, $matches)){
 echo " mauvais mot ";
print_r($matches);
}else{
echo "";
}

0
chatvertdusud Messages postés 71 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 14 septembre 2016
5 juil. 2015 à 17:21
merci Jordan, je n'y avais pas pensé.

Le mot qui ressort est une partie du mot mercedes :
mauvais mot Array ( [0] => cede )
0
chatvertdusud Messages postés 71 Date d'inscription mardi 7 avril 2015 Statut Membre Dernière intervention 14 septembre 2016
5 juil. 2015 à 22:36
Merci pour ton aide Jordan.
La solution https://stackoverflow.com/questions/16071987/php-preg-match-using-or-delimiter

chatvertdusud
0