J'ai une fonction de recherche PHP/Ajax qui renvoie tous les pays qui contiennent les caractères entrés dans une zone de texte. Tous ces pays sont répertoriés et les caractères donnés sont marqués en gras dans le pays dont le nom figure dans la liste.PHP preg_replace() différence minuscule et majuscule
Exemple Caractères donnés en zone de texte: "Af" qui reviennent Af ghanistan et du Sud Af rica - sans l'espace inbetween ofcourse
Maintenant, tous les noms de pays dans la base de données ofcourse commencer par un lettre majuscule. Mais
preg_replace()
ne peut pas trouver la différence entre les majuscules et les minuscules. Alors, quand je rentre « a » dans la zone de texte, il retournera Afgh un niste un n remarquez la première majuscule « A » non gras
Voici le code que je utilise
$display_name = preg_replace("/" . $search_string . "/", "<b>" . $search_string . "</b>", $result['Country_Name']);
$display_url = '';
$output = str_replace('NameReplace', $display_name, $HTML);
$output = str_replace('UrlReplace', $display_url, $output);
echo($output);
je peux "réparer" ce problème en ajoutant le "/ i" modificateur au preg_replace() Selon PHP.net il le fera comme suit:
i (PCRE_CASELESS) Si ce modificateur est défini, les lettres du motif correspondent aux lettres majuscules et minuscules.
Cela transforme les gras caractères dans les pays nom en minuscule ou majuscule en fonction des caractères dans la zone de texte
exemple: caractères donnés dans zone de texte: « A » retour "A FGH a niste a n " alors "un" retournera" un FGH un niste a n "encore s'il vous plaît ignorer l'espace blanc.
Comment puis-je faire que quand je rentre: "a" il retournera "A FGH un niste un n"?
Merci
S'il vous plaît lire toute ma question. Comme j'ai essayé ceci et cela pose un problème je ne sais pas comment réparer. –
@Krijn van der Burg Désolé j'ai oublié quelque chose, j'ai mis à jour ma réponse. Essayez-le maintenant. –
Je l'ai édité une deuxième fois, le() devrait être derrière et avant le slash /. –