Merhaba. Elimdeki reklamı sadece almanya isviçre ve avusturya da göstertmek istiyorum. bunun için browser dillerini baz aldım. borwser diline göre if kodu reklamın gösterilip gösterilemeceğini denetliyor. kullandığım kod aşağıdada
Sorunum: en sona 'tr' de eklediğimde tr borwserlarda reklamı görebiliyorum mantık olarak 'de' nin de çalışması gerekiyor ancak sadece almanca borwserlarda gösteremedim reklamı bi türlü. yani amacım türkçe borwserlar görmesin almancalar görsün.
Yardımcı olursanız şimdiden çok teşekkür ettim.
<?php
//function lang_getfrombrowser ($allowed_languages, $default_language, $lang_variable = null, $strict_mode = true) {
// if ($lang_variable === null) {
// $lang_variable = $_SERVER['HTTP_ACCEPT_LANGUAGE'];
// }
//
// if (empty($lang_variable)) {
// return $default_language;
// }
//
// $accepted_languages = preg_split('/,\s*/', $lang_variable);
//
// $current_lang = $default_language;
// $current_q = 0;
//
// foreach ($accepted_languages as $accepted_language) {
// $res = preg_match ('/^([a-z]{1,8}(?:-[a-z]{1,8})*)'.
// '(?:;\s*q=(0(?:\.[0-9]{1,3})?|1(?:\.0{1,3})?))?$/i', $accepted_language, $matches);
//
// if (!$res) {
// continue;
// }
//
// $lang_code = explode ('-', $matches[1]);
//
// if (isset($matches[2])) {
// $lang_quality = (float)$matches[2];
// } else {
// $lang_quality = 1.0;
// }
//
// while (count ($lang_code)) {
// if (in_array (strtolower (join ('-', $lang_code)), $allowed_languages)) {
// if ($lang_quality > $current_q) {
// $current_lang = strtolower (join ('-', $lang_code));
// $current_q = $lang_quality;
// break;
// }
// }
// if ($strict_mode) {
// break;
// }
// array_pop ($lang_code);
// }
// }
//
// return $current_lang;
// }
//
//
//$allowed_langs = array ('de', 'ch', 'at');
//$lang = lang_getfrombrowser ($allowed_langs, '--', null, false);
function lixlpixel_get_env_var($Var)
{
if(empty($GLOBALS[$Var]))
{
$GLOBALS[$Var]=(!empty($GLOBALS['_SERVER'][$Var]))?
$GLOBALS['_SERVER'][$Var]:
(!empty($GLOBALS['HTTP_SERVER_VARS'][$Var]))?
$GLOBALS['HTTP_SERVER_VARS'][$Var]:'';
}
}
function lixlpixel_detect_lang()
{
// Detect HTTP_ACCEPT_LANGUAGE & HTTP_USER_AGENT.
lixlpixel_get_env_var('HTTP_ACCEPT_LANGUAGE');
lixlpixel_get_env_var('HTTP_USER_AGENT');
$_AL=strtolower($GLOBALS['HTTP_ACCEPT_LANGUAGE']);
$_UA=strtolower($GLOBALS['HTTP_USER_AGENT']);
// Try to detect Primary language if several languages are accepted.
foreach($GLOBALS['_LANG'] as $K)
{
if(strpos($_AL, $K)===0)
return $K;
}
// Try to detect any language if not yet detected.
foreach($GLOBALS['_LANG'] as $K)
{
if(strpos($_AL, $K)!==false)
return $K;
}
foreach($GLOBALS['_LANG'] as $K)
{
if(preg_match("/[\[\( ]{$K}[;,_\-\)]/",$_UA))
return $K;
}
// Return default language if language is not yet detected.
return $GLOBALS['_DLANG'];
}
// Define default language.
$GLOBALS['_DLANG']='tr';
// Define all available languages.
// WARNING: uncomment all available languages
$GLOBALS['_LANG'] = array(
'af', // afrikaans.
'ar', // arabic.
'at', // austria
'bg', // bulgarian.
'ca', // catalan.
'ch', // swiss
'cs', // czech.
'da', // danish.
'de', // german.
'el', // greek.
'en', // english.
'es', // spanish.
'et', // estonian.
'fi', // finnish.
'fr', // french.
'gl', // galician.
'he', // hebrew.
'hi', // hindi.
'hr', // croatian.
'hu', // hungarian.
'id', // indonesian.
'it', // italian.
'ja', // japanese.
'ko', // korean.
'ka', // georgian.
'lt', // lithuanian.
'lv', // latvian.
'ms', // malay.
'nl', // dutch.
'no', // norwegian.
'pl', // polish.
'pt', // portuguese.
'ro', // romanian.
'ru', // russian.
'sk', // slovak.
'sl', // slovenian.
'sq', // albanian.
'sr', // serbian.
'sv', // swedish.
'th', // thai.
'tr', // turkish.
'uk', // ukrainian.
'zh' // chinese.
);
$acceptLang = array('de', 'ch', 'at');
if (in_array(lixlpixel_detect_lang(), $acceptLang)){
?>
<script Language="JavaScript">
document.write ('<scr' + 'ipt Language="JavaScript" src="http://www.euros4click.de/showme.php?id=23247&rnd=' + Math.random() + '&popup=false&layer=true"></scr' + 'ipt>');
</script>
<?php
}
?>
Sadece belli ülkelere gösterim
2
●435
- 06-09-2009, 04:58:48php modülü, apache modülü, php ye include olarak ayrı ayrı denemiştim, sunucu taraflı modül çözümler oldukça pratik ve hızlı oluyordu ancak gelişmiş veritabanı ücretli idi. Ücretsiz olan ülke engellemeye yetiyordu. Ancak, ram'de cache tutmak gibi birşeyler yaptığı için yaklaşık 50 MB ram yiyordu sunucudan.