Bonjour à tous, j'essai d'utiliser le preg_replace mais j'ai deux erreurs qui me bloquent:
Je veux remplacer tous les caractères spéciaux par des caractères normaux dans une chaîne mais je n'y arrive pas-Notice: Array to string conversion in C:\xampp\htdocs\test_php\test.php on line 34
-Warning: preg_replace(): Parameter mismatch, pattern is a string while replacement is an array in C:\xampp\htdocs\test_php\test.php on line 34
Le HTML:
Le PHP :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 <h1>Vous cherchez une maison des services proche de chez vous?</h1> <form method="POST"> <input id="search_field" type="search" name="search" size="50" placeholder="Votre commune (nom complet) ..."> <input id='submit' type="submit" name="submit" value="Valider"> </form>
Toute aide est la bienvenue, je comprends pas vraiment l'utilité des délimiteurs non plus.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 $search = $_POST['search']; $caracteres = ['a', 'Á' => 'a', 'Â' => 'a', 'Ä' => 'a', 'à' => 'a', 'á' => 'a', 'ä' => 'a', 'È' => 'e', 'É' => 'e', 'Ê' => 'e', 'Ë' => 'e', 'è' => 'e', 'é' => 'e', 'ê' => 'e', 'ë' => 'e', 'Ì' => 'i', 'Í' => 'i', 'Î' => 'i', 'Ï' => 'i', 'ì' => 'i', 'í' => 'i', 'î' => 'i', 'ï' => 'i', 'Ò' => 'o', 'Ó' => 'o', 'Ô' => 'o', 'Ö' => 'o', 'ò' => 'o', 'ó' => 'o', 'ô' => 'o', 'ö' => 'o', 'Ù' => 'u', 'Ú' => 'u', 'Û' => 'u', 'Ü' => 'u', 'ù' => 'u', 'ú' => 'u', 'û' => 'u', 'ü' => 'u', '' => 'oe', '' => 'oe']; $search = strtr($search, $caracteres); $search = preg_replace('##'.array_keys($caracteres).'##',array_values($caracteres), $search); $search = strtolower($search); echo($search);
Merci d'avance
Partager