묻고답하기
거즈님, 어떻게 해야 ''css/default.css''을 실행시킬 수가 있을까요?
2009.02.21 01:31
**
layouts.html
<?php
include '/home/hosting_users/realjoys/www/html/detect.php';
$a_browser_data = browser_detection('full');
if ( $a_browser_data[0] !== 'ie' )
{
echo "mise 아님55555";
}
else // if it is msie, that is
{
if ( $a_browser_data[1] <= 6 )
{
echo "msie 버전666".$a_browser_data[1];
}
else if ( $a_browser_data[1] >= 7 )
{
echo "msie 버전777".$a_browser_data[1];
}
}
?>
layouts.html을 실행했을 때 나타난 결과
msie
7.0msie 버전7777.0
msie ??.0msie 버전6666.0
위 빨간색 부분은 어디에서 나오는 것인지 모르겠습니다.
에코 값이 실행이 안 됩니다.
**
layouts.html
<?php
include '/home/hosting_users/realjoys/www/html/detect.php';
$a_browser_data = browser_detection('full');
if ( $a_browser_data[0] !== 'ie' )
{
echo "<link rel='stylesheet' type='text/css' href='css/default.css' />";
}
else // if it is msie, that is
{
if ( $a_browser_data[1] <= 6 )
{
echo "<link rel='stylesheet' type='text/css' href='css/default-ie.css' />";
}
else if ( $a_browser_data[1] >= 7 )
{
echo "<link rel='stylesheet' type='text/css' href='css/default.css' />";
}
}
?>
에코 값이 실행이 안 됩니다.
**
<?php
include '/home/hosting_users/realjoys/www/html/detect.php';
$a_browser_data = browser_detection('full'+
'+
');
if ( $a_browser_data[0] !== 'ie' )
{
echo "<!--%import('css/default.css')-->";
}
else // if it is msie, that is
{
if ( $a_browser_data[1] <= 6 )
{
echo "<!--%import('css/default-ie.css')-->";
}
else
{
echo "<!--%import('css/default.css')-->";
}
}
?>
detect.php에는 아래와 같습니다. 이렇게 하면 맞나요?
**
detect.php
<?php
include('/home/hosting_users/realjoys/www/html/browser_detection.php');
?>
거즈님,
아무튼 실행의 결과는 만족스럽지 않지만
이것에 관심을 가져 주셔서 감사합니다.
그런데 어떻게 해야 'css/default.css'을 실행시킬 수가 있을까요?
echo 호출 문법이 틀렸나요?
건즈
댓글 3
-
한마디
2009.02.21 01:31
이것 때문에 잠 못 이룬 밤입니다.
편안한 밤 되시기 바랍니다. -
한마디
2009.02.21 01:38
-
건즈
2009.02.21 03:42
1. 레이아웃에서 browser_detection.php를 바로 호출하시지, 뭐하러 저렇게 번거롭게 하셨나요?
2. (빨간색 출력물과 관련) browser_detection.php를 호출하는 detect.php에 말씀하신 코드 외에 다른 코드가 있을 것 같군요. 빨간 건 detect.php가 출력한 것이고, 그 뒤에 이어나오는 것은 레이아웃에서 출력한 것으로 추정됩니다. 그리고 detect.php의 캐릭터셋이 제대로 인식되지 않아서 저렇게 문자가 깨졌을 겁니다.
3. 제가 XE 문법을 잘 모릅니다. 그러니 XE의 호출법을 설명드릴 수가 없고 그걸 이용하는 방법에 대해서도 뭐라 드릴 말씀이 없습니다. 다른 방법으로 설명드리면...
1) 레이아웃에서 다음을 주목해주세요. 님이 코딩하신 폴더 지정 방식이 잘못되어 있습니다. 다음과 같이 .을 찍으면 xe 기본 폴더가 되고, 거기부터 시작해서 님이 쓰시는 레이아웃 폴더의 css 폴더까지 순서대로 경로를 명시해주세요. 그 다음 default.css를 지정하셔야 할 겁니다. 현재로선 시험을 위해 css 파일 대신 l.html이라는 제가 만든 파일로 대신하겠습니다. l.html은 뭔가를 출력해서 쉽게 확인할 수 있게 해줍니다.
2) l.html의 내용은 다음과 같습니다. 캐릭터셋을 지정해서 이상한 문자가 출력되지 않도록 했습니다.
3) 알FTP에서 올립니다. css 파일이 있는 폴더에 올립니다. 경로가 제대로 지정된 건지 확인할 수 있으니까요...
4) 레이아웃의 미리보기를 누릅니다.
5) 다음과 같이 출력되는 게 보입니다. 브라우저에 따라 '클릭해죠' 뒤의 숫자는 달라지겠죠..
6) 아무튼 클릭해죠를 클릭하면...
그런데, msie의 경우에 대해서는 현재로선 버전을 제대로 인식하지 못하는군요.
어제 시험하고 결과물을 올려드릴 때에는 msie를 7.0으로 정상적으로 인식하였지만, 현재는 6.0으로 인식하고 있습니다. msie 8도 6.0으로 인식하는군요. 그 이유는 잘 모르겠습니다.
하지만 레이아웃에 넣어서 출력하는 건 지난 번 댓글에서 알려드린 대로 잘됩니다.
버전 표시만 6.0으로 잘못 출력할 뿐이구요.
브라우저 검출 결과는 사용자의 브라우저 및 컴퓨터 환경에 따라 많이 달라지는 것 같습니다.
보다 많은 변수를 고려할수록 코드도 복잡해지는 것 같습니다.
조금 전에 어느 싸이트에서 본 코드는 현재 잘 작동합니다.
파일 두개를 올려드릴텐데, 두 파일을 웹싸이트의 같은 폴더에 넣고 시험해보시기 바랍니다.
browser_detection.php는 함수를 포함하며, detect.php는 호출을 합니다.
시험하실 때에는 detect.php를 웹싸이트에서 실행하시기 바랍니다.
msie가 아닌 브라우저는 msie 아님이라고 출력하며, msie인 경우에는 버전까지 출력하도록 하였습니다. 버전 6.0, 7.0, 8.0을 잘 인식합니다.
출처는 http://techpatterns.com/downloads/php-browser-detection-basic.php 입니다.