묻고답하기
IE6 브라우즈 버전 체크하는 것 왜 안 되는가?
2009.02.19 17:35
IE6 브라우즈 버전 체크하는 것 왜 안 되는가?
layouts.html 첫머리에 아래와 같은 php를 넣었는데 전혀 실행이 안 됩니다.
그런데 건즈님은 어떻게 실행이 될 수 있었는지 참 궁금합니다.
거즈님 뭐가 잘 못인지 좀 봐주시겠습니까?
1.
<?php
include '/home/hosting_users/realjoys/www/html/idBrowser.php';
$browser = idBrowser::detect();
echo $browser['name'];
echo $browser['version'];
if ($browser['name'] == 'msie') {
if ($browser['version'] <= '6') {
echo"<!--%import(\"css/default-ie.css\")-->";
}
else {
echo"<!--%import(\"css/default-ie.css\")-->";
}
}
else {
echo"<!--%import(\"css/default-ie.css\")-->";
}
?>
2. 아래 것은 실행이 안 됩니다. 브라우즈에 아무 것도 안 나타납니다.
error
{@include('/home/hosting_users/realjoys/www/html/idBrowser.php')}
error
{@include('/home/hosting_users/realjoys/www/html/idBrowser.php');}
error
{@include '/home/hosting_users/realjoys/www/html/idBrowser.php'}
3. 이것도 실행이 안 됩니다. browser 값도 나타나지 않습니다.
<!--#include('/home/hosting_users/realjoys/www/html/idBrowser.php')-->
{@ $browser = idBrowser::detect() }
{ $browser['name'+
'+
'] }
{ $browser['version'] }
<!--@if($browser['name'] == 'msie')-->
<!--@if($browser['version'] <= 6)-->
<!--%import("css/default-ie.css")-->
<!--@else-->
<!--%import("css/default.css")-->
<!--@end-->
<!--@else-->
<!--%import("css/default.css")-->
<!--@end-->
4. 아래 것도 마찬가지로 뭘 실행하는지 통 알 수가 없습니다.
<!--사용된 브라우저와 버전, 플랫폼 확인 -->
{@$userAgent = strtolower($_SERVER['HTTP_USER_AGENT'])}
<!--브라우저 종류 확인 -->
<!--@if(preg_match('/opera/', $userAgent))-->
{@$name = 'opera'}
<!--@elseif(preg_match('/webkit/', $userAgent))-->
{@$name = 'safari'}
<!--@elseif(preg_match('/msie/', $userAgent))-->
{@$name = 'msie'}
<!--@elseif(preg_match('/mozilla/', $userAgent) && !preg_match('/compatible/', $userAgent))-->
{@$name = 'mozilla'}
<!--@else-->
{@$name = 'unrecognized'}
<!--@end-->
<!--버전 확인 -->
<!--@if(preg_match('/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/', $userAgent, $matches))-->
{@$version = $matches[1]}
<!--@else-->
{@$version = 'unknown'}
<!--@end-->
<!--플랫폼 -->
<!--@if(preg_match('/linux/', $userAgent))-->
{@$platform = 'linux'}
<!--@elseif(preg_match('/macintosh|mac os x/', $userAgent))-->
{@$platform = 'mac'}
<!--@elseif(preg_match('/windows|win32/', $userAgent))-->
{@$platform = 'windows'}
<!--@else-->
{@$platform = 'unrecognized'}
<!--@end-->
<!--@if($name == 'msie')-->
<!--@if($version <= 6)-->
<!--%import("css/default-ie.css")-->
<!--@else-->
<!--%import("css/default.css")-->
<!--@end-->
<!--@else-->
<!--%import("css/default.css")-->
<!--@end-->
빨간색 임포트를 실행하는 것을 보면
위 if 문 조건 전체를 인식하지 못하는 것 같습니다.
이거 가지고 어제 오늘 씨름을 합니다.
어떤 분은 layouts.html 에서 php도 실행 된다고 하는데
way 나는 안 되는가???
누가 좀 도와 주세요.
http://khm-method.com/html/idBrowser.php
Parse error: parse error, unexpected T_STRING, expecting T_OLD_FUNCTION or T_FUNCTION or T_VAR or '}' in /home/hosting_users/realjoys/www/html/idBrowser.php on line 6
아래 빨간색 6번 줄에서 저는 에라나네요.
WHY?
**
<?php
class idBrowser {
/*
사용된 브라우저와 버전, 플랫폼 확인
*/
public static function detect() {
$userAgent = strtolower($_SERVER['HTTP_USER_AGENT']);
// 브라우저 종류 확인
if (preg_match('/opera/', $userAgent)) {
$name = 'opera';
}
elseif (preg_match('/webkit/', $userAgent)) {
$name = 'safari';
}
elseif (preg_match('/msie/', $userAgent)) {
$name = 'msie';
}
elseif (preg_match('/mozilla/', $userAgent) && !preg_match('/compatible/', $userAgent)) {
$name = 'mozilla';
}
else {
$name = 'unrecognized';
}
// 버전 확인
if (preg_match('/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/', $userAgent, $matches)) {
$version = $matches[1];
}
else {
$version = 'unknown';
}
// 플랫폼
if (preg_match('/linux/', $userAgent)) {
$platform = 'linux';
}
elseif (preg_match('/macintosh|mac os x/', $userAgent)) {
$platform = 'mac';
}
elseif (preg_match('/windows|win32/', $userAgent)) {
$platform = 'windows';
}
else {
$platform = 'unrecognized';
}
return array(
'name' => $name,
'version' => $version,
'platform' => $platform,
'userAgent' => $userAgent
);
}
}
?>