안녕하세요,PHP Double_Ccho와 이중 언어 웹 확인이 갑자기 작동하지 않음
죄송 합니다만, 이미 옵션이 부족합니다. 내 웹 사이트에서 머리 부분의 맨 위에있는 체코 코드 또는 슬로바키아 (IP 주소 체크 기반)에서 연결하면 체코 어 콘텐츠를 얻을 수 있고 나머지 IP는 주소는 영어로 제공됩니다. 이 작업은 DoubleEcho 함수의 매개 변수를 정의하여 수행됩니다. 갑작스럽게 멈췄다. 코드의 기본은 괜찮습니다.하지만 여전히 수동으로 내용을 전환 할 수 있지만 자동 선택이 어떻게 든 부숴졌습니다. 나는 항상 영어로 내용을 얻습니다. 제발, 나는 정말로 기뻐할 것입니다. 만약 당신이 코드를 볼 수 있다면 좋을 것입니다. 미리 많이 감사드립니다!
가 프록시를 통해 이동하거나이 부하 분산 장치에 직접 연결된 경우 토니 S.
<?php
// Language - URL check
if(isset($_GET['en']))
$lang = 'en';
elseif (isset($_GET['cz']))
$lang = 'cs';
// Language - IP check
else {
$pc = gethostbyaddr($_SERVER["REMOTE_ADDR"]);
$ext = array_pop(explode('.', $pc));
if($ext == 'cz' OR $ext == 'sk')
$lang = 'cs';
else
$lang = 'en';
}
// Language - Echo function
function DoubleEcho($text_cs, $text_en)
{
global $lang;
if($lang == 'cs')
echo $text_cs;
else
echo $text_en;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/2000/REC-xhtml1-20000126/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="<?php echo $lang; ?>" lang="<?php echo $lang; ?>">
<head>
<meta http-equiv="content-type" content="text/html; charset=utf-8" />
<meta http-equiv="Content-language" content="<?php echo $lang; ?>" />
IP에 역방향 DNS 항목이 없으면 작동하지 않습니다. 사용자가 체코 IP가 있지만 체코 어 호스트 이름이없는 페이지를 방문하면 해당 사용자의 REMOTE_ADDR에 cz 또는 sk가 포함되지 않습니다. – Maritim
네가 맞아, 고마워! 나는 그걸 친구와 테스트 해 봤어. 그래서 이야기는, 제가 최근에 움직여서 새로운 연결을 설정하고 그 이후로 스크립트가 저를 위해 작동하지 않는다는 것입니다. 그러나 친구는 여전히 괜찮습니다. 나는 그것을 스스로 찾아 내지 못했을 것입니다. 다시 한번 고마워! –