La posición inicial debe de ser 0 y si no incluyes el guión en el sustituyente debes sumar uno a la posición del guién en $prefijo porque si no te lo comes...
Código PHP:
<?php
function cambiaURL($url, $lenguaje) {
$posicion_guion=strrpos($url, "_");
$PREFIJO=substr($url, 0, $posicion_guion+1);
$posicion_punto=strrpos($url, ".");
$SUFIJO=substr($url, $posicion_punto);
$url_modificada=$PREFIJO . $lenguaje . $SUFIJO;
return ($url_modificada);
}
print cambiaURL("http://localhost/pruebas/index2_ES.html","EN")
?>
Otro ejemplo con una lista de idiomas y sufijos y una función que genera los enlaces:
Código PHP:
<?php
$url_actual="http://localhost/pruebas/index2_ES.html";
$idiomas=array("Español","Inglés","Alemán","italiano");
$idiomas_suf=array("ES","EN","DE","IT");
function cambiaURL($url, $lenguaje) {
$posicion_guion=strrpos($url, "_");
$PREFIJO=substr($url, 0, $posicion_guion+1);
$posicion_punto=strrpos($url, ".");
$SUFIJO=substr($url, $posicion_punto);
$url_modificada=$PREFIJO . $lenguaje . $SUFIJO;
return ($url_modificada);
}
function generaEnlaces()
{
global $url_actual,$idiomas,$idiomas_suf;
foreach ($idiomas as $key=>$value)
{
echo ' <a href="'.cambiaURL($url_actual,$idiomas_suf[$key]).'">Enlace '.$value.'</a> ';
}
}
generaEnlaces()
?>
Un saludo.