Problème avec str_ireplace et un tableau

Le problème exposé dans ce sujet a été résolu.

Bonsoir,

Mon code remplace les mauvaises requête pour mon moteur de recherche, mais j’ai un petit soucis que je comprends pas.

Il me rajoute un S, alors qu’il ne devrait pas.

Voici le code :

$query = $_GET['query'];

$query_Array = [
        'Peugeot Voiture'   => 'Peugeot V',
        'Peugeot voiture'   => 'Peugeot V',
        'Peugeot voitur'    => 'Peugeot V',
        'Peugeot'       => 'Peugeot V'
    ];

$query = str_ireplace(array_keys($query_Array), array_values($query_Array), $query);

Donc, lorsque je tape Peugeot, il me renvoie bien Peugeot V, mais lorsque je tape les autres, il me renvoie Peugeot V V

Je ne comprends pas pourquoi avec Peugeot seul, il me renvoie un V et les autres, il me renvoie deux V, donc lorsque je tape Peugeot Voiture il me renvoie Peugeot VV par exemple.

+0 -0

Ta règle str_ireplace s’applique deux fois, une fois pour Peugeot une deuxième fois pour Peugeot v....

Tu n’as pas besoin de faire des alternative avec le v minuscule et v majuscule, "str_ireplace" est insensible à la case.

Je te conseillerai d’apprendre à utiliser la regex, ça change une vie. Notamment quand tu veux faire une recherche ou remplacement de plusieurs lignes dans un fichier, tu gagnes beaucoup de temps.

Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte