Bonjour à tous, j'essai d'utiliser le preg_replace mais j'ai deux erreurs qui me bloquent:

-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
Je veux remplacer tous les caractères spéciaux par des caractères normaux dans une chaîne mais je n'y arrive pas

Le HTML:

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>
Le PHP :

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);
Toute aide est la bienvenue, je comprends pas vraiment l'utilité des délimiteurs non plus.

Merci d'avance