Sida 1 av 1

PHP: problem med logik och räckvidd [LÖST]

Postat: 28 jun 2007, 23:41
av TicToc
Är grön på PHP, tog ett tag att inse om man skulle skriva php i html, eller  'eka' html i php, jag vill stoppa in php i html.

Det hela går ut på att visa hemsidan i olika språk beroende på ursprung eller aktivt val, så långt fungerar det.
Med denna rad kan man göra ett aktivt val:

Kod: Markera allt

       [ <a href="/index2.php?lang=en">English</a> ~ <a href="/index2.php?lang=ru">Русский</a> ~ <a href="/index2.php?lang=sv">Svenska</a> ] 
Om det inte görs kollas webbläsarspråk här.

Kod: Markera allt

if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
}
else {
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lang = substr($lang, 0, 2);
}

switch ($lang) {
case "ru":
$title1 = "xxx";
$title2 = " - Проясненная тригонометрия";
    break;
case "sv":
$title1 = "xxx";
$title2 = " - Visualiserad Trigonometri";
    break;
default:
$title1 = "xxx";
$title2 = " - Visualized Trigonometry";
}
Det fungerar så här långt. Nu vill jag dock echo:a ut mina textsträngar på ställen bland html-taggarna.

Kod: Markera allt

  <body>
    <div id="Main">
      <h1>
--->         $title1 
      </h1>
      <h2>
--->         $title2
      </h2>
...
I verkligheten är det betydligt fler strängar än dessa två.
Det är nog ett räckviddsproblem som gör att jag inte kan echo:a mina strängar. Var kan jag sätta dessa så att jag kommer åt dem?
Jag specar dem gärna i en fil per språk. Har misslyckats med några include/define-försök också.

SV: PHP: problem med logik och räckvidd

Postat: 29 jun 2007, 08:11
av Barre
Tjena trixon.

Det du kan göra på två sätt.

Ett sätt ät att lägga hela html-utskriften i en variabel och sen "eka" ut variabeln.
D.v.s. att "hela" php dokumentet är inkapslat med php taggarna.

Kod: Markera allt

<?php
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
}
else {
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lang = substr($lang, 0, 2);
}

switch ($lang) {
case "ru":
$title1 = "xxx";
$title2 = " - Проясненная тригонометрия";
    break;
case "sv":
$title1 = "xxx";
$title2 = " - Visualiserad Trigonometri";
    break;
default:
$title1 = "xxx";
$title2 = " - Visualized Trigonometry";
}

$html_ouput = "  <body>
    <div id="Main">
      <h1>
        $title1 
      </h1>
      <h2>
         $title2
      </h2>
......";

echo $html_ouput;
?>
Eller så måste du inkludera php-taggarna sam echo kommandot vid html koden:

Kod: Markera allt

<?php
if (isset($_GET['lang'])) {
$lang = $_GET['lang'];
}
else {
$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
$lang = substr($lang, 0, 2);
}

switch ($lang) {
case "ru":
$title1 = "xxx";
$title2 = " - Проясненная тригонометрия";
    break;
case "sv":
$title1 = "xxx";
$title2 = " - Visualiserad Trigonometri";
    break;
default:
$title1 = "xxx";
$title2 = " - Visualized Trigonometry";
}
?>

<body>
    <div id="Main">
      <h1>
        <?php echo $title1 ?>
      </h1>
      <h2>
         <?php echo $title2 ?>
      </h2>
......

SV: PHP: problem med logik och räckvidd

Postat: 30 jun 2007, 13:26
av TicToc
Tack Barre!
Nu funkar det som jag vill, jag körde enl. alt. 2.
>Eller så måste du inkludera php-taggarna sam echo kommandot vid html koden: