Ver Mensaje Individual
  #1 (permalink)  
Antiguo 22/03/2010, 13:10
Avatar de metacortex
metacortex
Viejo demente
 
Fecha de Ingreso: junio-2004
Ubicación: Caracas - Venezuela
Mensajes: 9.027
Antigüedad: 20 años, 6 meses
Puntos: 832
Problemas con substr y algunos caracteres

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_alfa01); 
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.