Estoy haciendo un diccionario alfabético que tome el primer caracter del título e ingrese un caracter limpio en la BD. Ésto es lo que he hecho hasta el momento:
Código PHP:
$reemplazos = array( 'Š'=>'S' , 'Ž'=>'Z' , 'Č'=>'C' , 'À'=>'A' , 'Á'=>'A' , 'Â'=>'A' , 'Ã'=>'A' , 'Ä'=>'A' , 'Å'=>'A' , 'È'=>'E' , 'É'=>'E' , 'Ê'=>'E' , 'Ë'=>'E' , 'Ì'=>'I' , 'Í'=>'I' , 'Î'=>'I' , 'Ï'=>'I' , 'Ò'=>'O' , 'Ó'=>'O' , 'Ô'=>'O' , 'Õ'=>'O' , 'Ö'=>'O' , 'Ù'=>'U' , 'Ú'=>'U' , 'Û'=>'U' , 'Ü'=>'U' , 'Ý'=>'Y' , 'š'=>'s' , 'ž'=>'z' , 'č'=>'c' , 'à'=>'a' , 'á'=>'a' , 'â'=>'a' , 'ã'=>'a' , 'ä'=>'a' , 'å'=>'a' , 'è'=>'e' , 'é'=>'e' , 'ê'=>'e' , 'ë'=>'e' , 'ì'=>'i' , 'í'=>'i' , 'î'=>'i' , 'ï'=>'i' , 'ò'=>'o' , 'ó'=>'o' , 'ô'=>'o' , 'õ'=>'o' , 'ö'=>'o' , 'ù'=>'u' , 'ú'=>'u' , 'û'=>'u' , 'ü'=>'u' , 'ý'=>'y', '1'=>'#', '2'=>'#', '3'=>'#', '4'=>'#', '5'=>'#', '6'=>'#', '7'=>'#', '8'=>'#', '9'=>'#', '0'=>'#', );
$ttp_alfa = strtr($_POST['ttp_texto'] , $reemplazos);
$ttp_alfa = strtoupper($ttp_alfa);
$ttp_alfa = substr($ttp_alfa, 0, 1);
Hasta ahí funciona todo bien: limpia la frase, toma el primer caracter, lo convierte a mayúsculas y lo manda a la BD sin problemas. El lío surge cuando la frase comienza por caracteres como "? , ¡ , @ , - , _ , % , | " o cualquier otro que no sea alfanumérico, el cual quiero
eliminar para continuar con el primero que cumpla con el requisito (letras o números).
Lo único que quiero hacer es decirle a PHP "si éste caracter no pertenece a
$reemplazos (el array de arriba), continúa buscando en la línea hasta que encuentres el primero". ¿Cómo le hago?.
Por ejemplo, si el usuario ingresa la frase "¡¡¡¡Holaaaa!!!" el script debería ingresar "H" en la base de datos.