Foros del Web » Programando para Internet » PHP »

Ayuda con un scritp

Estas en el tema de Ayuda con un scritp en el foro de PHP en Foros del Web. Quiero hacer un dos include si $newlang es igual a spanish sale un includo y si no lo es sale otro o tambien si $newlang ...
  #1 (permalink)  
Antiguo 25/03/2004, 04:49
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 14 años, 1 mes
Puntos: 1
Ayuda con un scritp

Quiero hacer un dos include si $newlang es igual a spanish sale un includo y si no lo es sale otro o tambien si $newlang es icgual a english sale el otro, yo pinso que con poner solo la primera opcion es factible, es decir si no es igual a spanish pues pasa al otro.
Código PHP:
$newlang "spanish"; {
include(
"modules/home/home_spanish.php");
}else{
include(
"modules/home/home_english.php");

Gracias
__________________

diseño web
  #2 (permalink)  
Antiguo 25/03/2004, 05:49
 
Fecha de Ingreso: noviembre-2002
Ubicación: Barcelona - España
Mensajes: 270
Antigüedad: 15 años
Puntos: 0
Te has dejado el if y ==
  #3 (permalink)  
Antiguo 25/03/2004, 10:25
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 14 años, 1 mes
Puntos: 1
Código PHP:
if (($newlan == 0)&&(!$newlan == spanish))
{
include(
"contenido/home/home_spanish.php");
}
else
{
if ((
$newlan == english)
    {
    include(
"contenido/home/home_english.php");
    }

Seria algo asi pero no tira
__________________

diseño web

Última edición por concric; 25/03/2004 a las 10:30
  #4 (permalink)  
Antiguo 25/03/2004, 10:33
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 14 años, 1 mes
Puntos: 1
Cita:
Mensaje Original por concric
Código PHP:
if (($newlan == 0)&&(!$newlan == spanish))
{
include(
"contenido/home/home_spanish.php");
}
else
{
if (
$newlan == english)
    {
    include(
"contenido/home/home_english.php");
    }

Seria algo asi pero no tira
__________________

diseño web
  #5 (permalink)  
Antiguo 25/03/2004, 10:35
Avatar de Ánima  
Fecha de Ingreso: julio-2002
Ubicación: Catalunya, Barcelona.
Mensajes: 538
Antigüedad: 15 años, 5 meses
Puntos: 1
Seria....

Código PHP:
if ($newlan == "spanish"){
include(
"contenido/home/home_spanish.php");
}else{    include(
"contenido/home/home_english.php");

  #6 (permalink)  
Antiguo 25/03/2004, 10:42
O_O
 
Fecha de Ingreso: enero-2002
Ubicación: Santiago - Chile
Mensajes: 34.417
Antigüedad: 15 años, 11 meses
Puntos: 126
spanish o english acaso son constantes? ...

Si no lo són .. deberían ir entre comillas para tu IF()

if (($newlan == 0)&&(!$newlan == "spanish"))


pero .. para estos casos tienes la sentencia: switch() que va muy bien ...

Código PHP:
switch ($newlan){
    case 
"spanish":
         include(
"contenido/home/home_spanish.php");
    break;
    case 
"english":
         include(
"contenido/home/home_english.php");
    break:
    default:
         include(
"contenido/home/home_spanish.php");

El "switch()" seleciona uno u otro código a ejecutar (en el "case" ) en el caso que corresponda y si no se cumple ninguno de los anteriores pasa a ejecutar lo que indiques en la opción "default" (por defecto).

Un saludo,

PD: .. recuerda también que tienes la estructra de control if () elseif() .. else .... Por si quieres probar con tus IF() ...
__________________
Por motivos personales ya no puedo estar con Uds. Fue grato haber compartido todos estos años. Igualmente los seguiré leyendo.
  #7 (permalink)  
Antiguo 25/03/2004, 10:44
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Hola,

¿Que valores puede tomar $newlang? ¿Siempre esta definido? ¿Puede tener un valor que no sea ni spanish ni english?

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #8 (permalink)  
Antiguo 25/03/2004, 10:54
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Bueno, tras 5 minutos de reflexion, aui va mi opcion:
Código PHP:
$destinos=array('spanish'=>'contenido/home/home_spanish.php','english'=>'contenido/home/home_english.php');
$destino_defecto='contenido/home/home_spanish.php';
if (!isset(
$newlang) || !in_array($newlang,$destinos)) {
  include(
$destinos[$newlang]);
} else {
  include(
$destino_defecto);

O incluso mejor (en mi opinion):
Código PHP:
$destinos=array('spanish'=>'contenido/home/home_spanish.php','english'=>'contenido/home/home_english.php');
$destino_defecto='contenido/home/home_spanish.php';
$destino_include='';
if (!isset(
$newlang) || !in_array($newlang,$destinos)) {
  
$destino_include=$destinos[$newlang];
} else {
  
$destino_include=$destino_defecto;
}
include(
$destino_include); 
Si quieres añadir mas idiomas, solo tienes que añadir elementos al array. Y el array no tiene por que venir en el codigo, puedes generarlo de un fichero o de base de datos. O ponerlo en un fichero aparte e incluirlo (para no tocar el fichero principal).

Saludos.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
  #9 (permalink)  
Antiguo 25/03/2004, 10:57
 
Fecha de Ingreso: noviembre-2003
Ubicación: Málaga
Mensajes: 293
Antigüedad: 14 años, 1 mes
Puntos: 1
Resuelto el problema era en caso de que este vacia la vartiable
despues de ar muchas vuelta lo logre, con ayuda del foro porsupuesto

Código PHP:
if ($newlang == "english")
{
include(
"contenido/home/home_english.php");
}
else
{
if ((
$newlang == "spanish")||($newlang == 0))
{
include(
"contenido/home/home_spanish.php");
}
else
{
include(
"contenido/home/home_spanish.php");
}

__________________

diseño web

Última edición por concric; 25/03/2004 a las 10:58
  #10 (permalink)  
Antiguo 25/03/2004, 11:01
Ex Colaborador
 
Fecha de Ingreso: junio-2002
Mensajes: 9.091
Antigüedad: 15 años, 5 meses
Puntos: 16
Otro par de minutos y se me ocurre la solucion "in one line":
Código PHP:
include('contenido/home/home_'.((empty($newlang) || 'english'!=$newlang)?'spanish':'english').'.php'); 
Si no me he equivocado con los parentesis. Por supuesto, esta version es poco clara, poco extensible (intentar meter cuatro idiomas ahi ), y poco flexible (en mi opinion).

Saludos.

PD: Es la ultima version que pongo, lo prometo.
__________________
Josemi

Aprendiz de mucho, maestro de poco.
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 13:38.