Autor Zpráva
nerko
Profil
Caute. prosim pomozte. ako vlozim prvu cast kodu do tej druhej. chcel by som tym nahradit ten text.
<?php echo $text[$jazyk]['text'];?>


      $temp = '-';
        }
    }
   return 'text'.'&nbsp;'.$temp.' &deg;'.$tempu; 
    }
echo processWeather('http://xml.weather.yahoo.com/forecastrss?p=LOXX0005&u=c');

?></p>
gogy27
Profil
1. Chces tam dat tam aj toto <?php ... ?>?
2. Preco mas dole zas ?> toto?
3. Nemozes to dat do premennej?
Hitman
Profil
gogy27
Preco mas dole zas ?> toto?
Pro ukončení.
gogy27
Profil
Hitman
ale ma uz tam jedno ukoncenie tak vobec nwm (potom zaciatok mu tam chyba, alebo je to iba odtrhnute z kontextu a preto nwm preco chce zasa cele php otvarat a uzatvarat)
keeehi
Profil
já bych to viděl třeba takto:
<?php echo $text[$jazyk]['text'];


      $temp = '-';
        }
    }
   return $text[$jazyk]['text'].'&nbsp;'.$temp.' &deg;'.$tempu; 
    }
echo processWeather('http://xml.weather.yahoo.com/forecastrss?p=LOXX0005&u=c');

?>
nerko
Profil
takze takto. Do tohto kodu:
<?php 

--------- /nechcem to vypisovat cele

 $temp = '-';
        }
    }
   return 'text'.'&nbsp;'.$temp.' &deg;'.$tempu; 
    }
echo processWeather('http://xml.weather.yahoo.com/forecastrss?p=LOXX0005&u=c');?>


Chcem vlozit toto (namiesto 'text'):
$text[$jazyk]['text']
. Lenze mne robia este problemy tie uvodzovky, takze mi to stale vypisuje parse error. tak preto zaidam o pomoc. dakujem
Alphard
Profil
jaký problém máte s [#5]?
gogy27
Profil
nerko
a skusal si ich excapovat?
nerko
Profil
no neviem ako proste chcem ten php kod vlozit do toho druheho
nerko
Profil
1. Do kodu cislo 1 chcem vlozit php kod. chcem nim nahradit text.

Kod cislo 1:
<?php // pokračovanie kodu
return 'nahradit php kodom c 2'.'&nbsp;'.$temp.' &deg;'.$tempu;
// pokračovanie kodu ?>


Kod cislo 2:
<?php echo $text[$jazyk]['pocasie'];?>
nerko
Profil
jaký problém máte s [#5]?

nezobrazuje mi ten text, ale ani server nevypisuje chybu. tak neviem kde je problem
Davex
Profil
Domnívám se, že tvoje otázka není jednoznačná a dá se vykládat více způsoby. Nejvíce pravděpodobná je tato varianta:

<?php // pokračovanie kodu
return $text[$jazyk]['pocasie'].'&nbsp;'.$temp.' &deg;'.$tempu;
// pokračovanie kodu ?>


Další variantu asi nechceš:

<?php // pokračovanie kodu
return '<'.'?php echo $text[$jazyk][\'pocasie\'];?'.'>'.'&nbsp;'.$temp.' &deg;'.$tempu;
// pokračovanie kodu ?>
nerko
Profil
no hodim sem cely kod, lebo ani jeden mi nezobrazuje nic. pokusam sa do kodu vlozit jazykovu verziu.
<?php
if(!isset($_SESSION['lang']) || $_GET['lang']!='') {
   switch($_GET['lang']) {
     case 'sk':
      $lang = 'sk';
      break;
      case 'pl':
      $lang = 'pl';
      break;
      default:
      $lang = 'sk';
      break; 
   }
   $_SESSION['lang'] = $lang;
}

// dame si do premennej aktualny jazyk
$jazyk = $_SESSION['lang'];


// slovenske texty
$text['sk']['pocasie'] = 'Aktuálne počasie:';
$text['sk']['starysmokovec'] = 'Starý Smokovec';

// polske texty
$text['pl']['pocasie'] = 'Aktualna pogoda:';
$text['pl']['starysmokovec'] = 'Stary Smokowiec';
?>

<p><strong style= "color: #386390;"><?php echo $text[$jazyk]['pocasie'];?></strong>&nbsp;<?php 
function curl_get_contents($weatherLink)
{
   $curl = curl_init();
   curl_setopt($curl, CURLOPT_URL, $weatherLink);
   curl_setopt($curl, CURLOPT_CONNECTTIMEOUT, 5);
   curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
   curl_setopt($curl, CURLOPT_HEADER, 0);
   curl_setopt($curl, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows; U; Windows NT 6.0; sk; rv:1.8.1.14) Gecko/20080404 Firefox/2.0.0.14");
   curl_setopt ($curl, CURLOPT_HTTPHEADER, Array(
      "Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5",
      "Accept-Language: sk,cs;q=0.8,en;q=0.5,en-us;q=0.3",
      "Accept-Charset: windows-1250;q=0.7,*;q=0.7"
   ));

   $input = curl_exec($curl);

   curl_close($curl);
   return $input;
}

function processWeather($wurl){
   
    $wrss = curl_get_contents($wurl);
    $temp  = '-';
    $tempu = '';
    $city  = '';
    if (strlen($wrss)>100){
        // Get temperature unit C or F
        $spos = strpos($wrss,'yweather:units temperature="')+strlen('yweather:units temperature="');
        $epos = strpos($wrss,'"',$spos);
        if ($epos>$spos){
            $tempu = substr($wrss,$spos,$epos-$spos);
        }

        $spos = strpos($wrss,'yweather:wind chill="')+strlen('yweather:wind chill="');
        $epos = strpos($wrss,'"',$spos);
        if ($epos>$spos){
            $temp += substr($wrss,$spos,$epos-$spos);
        } else {
            $temp = '-';
        }
    }
  return '//tu je problem, kde chcem vlozit ten stary smokovec//'.'&nbsp;'.$temp.' &deg;'.$tempu;
    }
echo processWeather('http://xml.weather.yahoo.com/forecastrss?p=LOXX0005&u=c');

?></p>
gogy27
Profil
return "$text[$jazyk]['starysmokovec']".'&nbsp;'.$temp.' &deg;'.$tempu;


Preco to nemozes dat takto?
nerko
Profil
teraz mi to prehliadač zobrazuje takto:
Aktuálne počasie: ['starysmokovec'] -5 °C
gogy27
Profil
'$text[$jazyk][\'starysmokovec\']'
skus toto
nightfish
Profil
function processWeather($wurl){
  global $text;
  global $jazyk;
  $wrss = curl_get_contents($wurl);
  ...
  return $text[$jazyk]['starysmokovec'].'&nbsp;'.$temp.'&deg;'.$tempu;
}
nerko
Profil
[#16] toto mi to zobrazuje :
Aktuálne počasie: $text[$jazyk]['starysmokovec'] -5°C

[#17]toto mi zobrazuje :
Aktuálne počasie:  -5°C
gogy27
Profil
takze uz to mas dobre?
nerko
Profil
nemam, nejak sa nechce zobrazit to co potrebujem. ja uz neviem. malo by sa to zobrazit takto: SK
Aktuálne počasie: Starý Smokovec  -5°C


PL
 Aktualna pogoda: Stary Smokowiec -5°C
keeehi
Profil
return $text[$jazyk]['pocasie'].'&nbsp;'.$text[$jazyk]['starysmokovec'] .'&nbsp;'.$temp.' &deg;'.$tempu;
nerko
Profil
[#21] ani v tomto pripade sa vobec nezobrazuje ten potrebny text
keeehi
Profil
najdi tyto řádky a uprav je
//najít
function processWeather($wurl){
echo processWeather('http://xml.weather.yahoo.com/forecastrss?p=LOXX0005&u=c');

//upravit
function processWeather($wurl,$jazyk){
echo processWeather('http://xml.weather.yahoo.com/forecastrss?p=LOXX0005&u=c',$jazyk);


pak už by to mělo fungovat
Problém je v tom že funkce nepracuje s proměnnýma vně funkce. příklad:
$a = 1;
function xyz(){
echo $a;
}
xyz();
// na výstupu se nic nezobrazí protože ve funkci se vlastně jedná o jinou proměnnou (i když se jmenuje stejně) která je prázdná.
nerko
Profil
aj tak to stale nejde, ja neviem kde je chyba, uz mi stoho sibe
AM_
Profil
Problém je v tom že funkce nepracuje s proměnnýma vně funkce.
Pokud je ve funkci definovaná klíčovým slovem global, tak pracuje. Problém je zřejmě někde jinde.

Zvážil bych spíš, jestli na konec funkce processWeather nedat jen return '.$temp.' &deg;'.$tempu; a hlášky aktuální počasí: starý smokovec připojit až mimo funkci, protože se samotným chováním funkce nemají z logického hlediska nic společného.

Ono obecně používání příliš globálních proměnných ve funkci zavání špatnou strukturou programu. Funkce by měla pracovat co nejsamostatněji, neměla by být závislá na hromadě proměnných z těla programu, a všechny proměnné, které její chování ovlivňují, by měly být předány jako parametr. Někdy se člověk globální proměnné nevyhne, ale tady je to opravdu zbytečné
blizz_boz
Profil
nerko

ani sa ti nedivim ze sa v tom nevyznas, preco plne nevyuzivas moznosti PHP pri zapise retazcov? a mas tam milion bodiek?... toto je imo ovela prehladnejsi zapis:

return "{$text[$jazyk]['starysmokovec']}&nbsp;$temp&deg;$tempu";
nightfish
Profil
nerko
1) takže asi začni tím, že si nastavíš error_reporting(E_ALL)
a Display_errors = On

2) jazyk je "sk" nebo "SK"? v prvním případě to fungovat musí, ve druhém případě to fungovat nebude
nerko
Profil
takze som to vyriesil upne jednoducho ako mi poradil AM_ . Ten stary smokovec som uplne vynechal z toho php kodu a dal som ho inde. uz to funguje, dakujem vam za ucelne komentare.

Vaše odpověď

Mohlo by se hodit


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: