Autor Zpráva
Joseph777
Profil *
Chcel by som poprosit o pomoc (neviem podmienky a html v php) s php, chcem podla podmienok(jazyk prehliadaca) zobraziť DIV
<?php
// Get 2 char lang code
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);

if $lang==sk
<div>stranka je slovensky</div>
elseif==cs
<div>stranka je cesky</div>
else
<div>stranka je v inom jazyku</div>
?>
PecanCZ
Profil
takto je to správně

if ($lang=='sk') {
echo '<div>stranka je slovensky</div>';
} elseif($lang=='cs') {
echo '<div>stranka je cesky</div>';
} else {
echo '<div>stranka je v inom jazyku</div>';
}
Chro
Profil
Hlavička HTTP ACCEPT LANGUAGE nemusí být nastavena, většinou ji nepoužívají roboti. Proto by měla být použita kontrolní podmínka a následně např. přepínač switch.
<?php
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang)
{
case 'sk':
$html = '<div>sk<div>';
break;
case 'cs':
$html = '<div>cs<div>';
break;
default:
$html = '<div>ostatní jazyky<div>';
}
echo $html;
}
?>
Joseph777
Profil *
vdaka
je nutne pouzit ten switch?
jedinne co ma napada preco je nutne ho pouzit je, aby ma nahodou google nepenalizoval ze jemu davam iny obsah ako normalnym navstevnikom
Chro
Profil
Joseph777:
Není nutné použít switch, i konstrukce if - elseif vyhoví tvým potřebám. Co na to Google nevím, tahle problematika mě míjí velkým obloukem.
candiess
Profil
Google na to nic nerekne, google botum pride tak samo jako prohlizeci az vygenerovany kod, samotna php logika se zpracovava na serveru, tudiz tohle miji google a SEO obecne mega obloukem :) sry za hacky, sem na mob
Joseph777
Profil *
ok tak pouzijem to if elseif

vdaka za rady
Chro
Profil
candiess:
Jenže když se podíváš na můj výše uvedený kód, googlebot nedostane žádný div s obsahem protože neposílá hlavičku HTTP ACCEPT LANGUAGE. Banální úpravou skriptu by tomu bylo samozřejmě jinak.
Joseph777
Profil *
aha takže je to pravda, že google potom dostane iný obsah ako normálny návštevník kedže neposiela hlavičku HTTP ACCEPT LANGUAGE

akou úpravou by to bolo inak?
Chro
Profil
<?php
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
}
else
{
$lang = 'sk';
}

switch ($lang)
{
case 'sk':
$html = '<div>sk</div>';
break;
case 'cs':
$html = '<div>cs</div>';
break;
default:
$html = '<div>ostatní jazyky</div>';
}

echo $html;
?>
Joseph777
Profil *
vdaka este sa opytam ked si taky znalec php (to if pri echo)
ako by vyzeral ten kod keby: ak existuje case (teda bud sk alebo cz) zobraz <div id="box"></div>
to znamena ze ak by prehliadac posielal hlavicku napr. en, ktora nie je definovana (nema case vv kode nizsie) <div id="box"></div> sa nezobrazi

if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE']))
{
$lang = substr($_SERVER['HTTP_ACCEPT_LANGUAGE'], 0, 2);
switch ($lang)
{
case 'sk':
$lang = 'sk';
break;
case 'cs':
$lang = 'cs';
}
 
if case exist echo  '<div id="box"> '.$lang.'</div>';
}
candiess
Profil
tak si precti neco o switch, mirim ke kouzelnemu slovicku , default :)

Vaše odpověď


Prosím používejte diakritiku a interpunkci.

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