Parece que el problema está en la variable global, además de que no es muy util ya que luego no la utilizas en la función.
Además veo un código algo enrevesado, yo lo simplificaría un poco simplemente utilizando dos veces la función explode(), una para cortar la cadena por la izquierda y otra por la derecha:
Código PHP:
function sacar($cadena, $sLeft, $sRight){
$cadena_sin_inicio = explode($sLeft, $cadena);
if (isset($cadena_sin_inicio[1])){
$cadena_resultado = explode($sRight, $cadena_sin_inicio[1]);
return $cadena_resultado[0];
}else{
return "";
}
}
Y no uses la variable global, si no que pásale siempre la cadena por parámetro.
Si el problema continúa, prueba a imprimir el valor de $texto.