Funzione If

vincapon

Nuovo Utente
18 Mar 2014
4
0
0
Un saluto a tutti. Sto per mettere in rete un sito realizzato con wordpress.
E' un sito multilingue. A tal proposito vorrei che, in base alla lingua scelta, sia
visibile il valore di un campo piuttosto che un altro.
Ho creato nel file header.php una variabile $lang così definita:

<!DOCTYPE html>
<!--[if lt IE 7]> <html <?php language_attributes(); ?> class="ie6"> <![endif]-->
<!--[if IE 7]> <html <?php language_attributes(); ?> class="ie7"> <![endif]-->
<!--[if IE 8]> <html <?php language_attributes(); ?> class="ie8"> <![endif]-->
<!--[if gt IE 8]><!--> <html <?php language_attributes(); ?>> <!--<![endif]-->

<?php
$lang = language_attributes();
echo "$lang";
?>


Così definita mi da come risultato: lang="it-IT" se italiano e lang="en-US" se inglese
(echo l'ho inserito come conferma ).
Ora vorrei costruire uno script con la funzione IF ( del tipo IF $lang= lang="itIT" leggi questo campo
oppure leggi l'altro).
Premesso che sono un autodidatta, dopo innumerevoli prove, mi sono impallato....
Qualcuno può darmi un aiuto?
Grazie
 
Ciao se il tuo echo ti restituisce lang="it-IT", devi trattare questo valore come una stringa.

Dovresti fare così:

PHP:
if ($lang=='lang="it-IT"'){
	echo "la lingua è italiano";
} elseif ($lang=='lang="de-DE"'){
	echo "la lingua è tedesca";
} else {
	echo "la lingua non è nè italiana nè tedesca";
}

Altrimenti se hai molte stringhe da confrontare con un unico valore ti consiglio di usare http://www.php.net/manual/en/control-structures.switch.php

Qui in italiano
http://www.lapaweb.com/istruzione-switch-case-del-php.html
 
Intanto ti ringrazio per la disponibilità.
Ho seguito il tuo consiglio; ho provato ma ho comunque due errori:

1- visualizza la variabile anche se non è presente un comando echo

errore funzione if.jpg

2 - non gestisce la funzione if ( credo che sia un problema di virgolette e/o apici )

PHP:
<?php
$lang = language_attributes();

switch ($lang)
{
        case 'lang="en-US"':   echo ("18 anni");
        break;
        case 'lang="it-IT"':   echo ("25 anni");
        break;
        case 33:   echo ("33 anni");
        break;
        default:   echo ("nessuna delle tre");
        break;
}
?>

Puoi o potete aiutarmi?
Come rimpiango non aver studiato quando era il tempo di farlo......
Grazie
 
Ultima modifica di un moderatore:
ciao
metti un var_dump così vedi esattamente cosa ti restituisce e tipo
poi prova eventualmente a togliere gli apici e lang=
PHP:
<?php
$lang = language_attributes();
var_dump($lang);
$togli=array("lang=","\"");
$lang = str_replace($togli, "", $lang);
switch ($lang)
{
        case 'en-US':   echo ("18 anni");
        break;
        case 'it-IT':   echo ("25 anni");
        break;
        case '33':   echo ("33 anni");
        break;
        default:   echo ("nessuna delle tre");
        break;
}
?>
 

Discussioni simili