Un saludo a los que me leen y a los que no:
Estoy realizando un detector de idiomas que trabaja en lenguajes de 2 y 4 letras, ej. es y es-ES. Por lo que tengo:
Hay mas lineas pero estoy trabado en esta parte en la que los valores de array $languages deban contener 2 letras en vez de 4, cosa que logro. El problema esta al usar preg_match() para buscar coincidencia entre $blang y cada lenguaje del array $languages, lo que al almacenar resultado en $language lo hace en array() y lo que quiero es que me guarde el unico valor de si es "en", "es" o "zh" el cual esta reflejado en $blang.
[PHP]
$languages = array ('en-US', 'es-ES', 'zh-CN');
$blang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 5); // Actualmente "es,en".
// (...)
$blang = substr($blang, 0, 2);
// (...)
foreach ($languages as $lang)
{
$language = substr($lang, 0, 2);
preg_match("/\b".$blang."\b/i", $lang, $language);
$language = substr($lang, 0, 2);
}
[PHP]
En si lo que quiero es saber que otra opcion puedo usar para que $blang sea comparada dentro de el array $languages y que ese especifico valor que coincida, ej. "es" (Ya que es un codigo de lenguaje de 2 letras) sea almacenado en $language y no los valores "eneszh", como me esta haciendo.
Alguna idea en vez de preg_match usar otra cosa o quizas emplearlo de otra manera sin alterar tanto el codigo?