Autor | Zpráva | ||
---|---|---|---|
Joseph777 Profil * |
#1 · Zasláno: 13. 5. 2012, 12:39:27
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 |
#2 · Zasláno: 13. 5. 2012, 13:06:34
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 |
#3 · Zasláno: 13. 5. 2012, 13:13:05
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 * |
#4 · Zasláno: 13. 5. 2012, 14:36:14
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 |
#5 · Zasláno: 13. 5. 2012, 20:11:43
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 |
#6 · Zasláno: 13. 5. 2012, 22:28:34
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 * |
#7 · Zasláno: 13. 5. 2012, 22:38:58
ok tak pouzijem to if elseif
vdaka za rady |
||
Chro Profil |
#8 · Zasláno: 13. 5. 2012, 22:39:32
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 * |
#9 · Zasláno: 14. 5. 2012, 09:46:32
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 |
#10 · Zasláno: 14. 5. 2012, 10:02:59
<?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 * |
#11 · Zasláno: 14. 5. 2012, 23:33:15
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 |
#12 · Zasláno: 15. 5. 2012, 08:16:23
tak si precti neco o switch, mirim ke kouzelnemu slovicku , default :)
|
||
Časová prodleva: 12 let
|
0