반응형

안녕하세요 무꼬입니다~


제가 블로그를 운영하면서,

스파이더(spider)와 크롤러(crawler)에 대한 정보가 필요해져 이리저리 찾아보다가 2010년에 이지넷에 올라와있는 정보를 공부하기위해서 잠시 인용해둡니다 ㅎㅎ

여러분도 공부하기위해 필요하시다면 참고하도록 하세요~


출처는 이지넷 http://www.eznetsol.com/07/06.php






1.스파이더(spider),크롤러(crawler)란 무엇인가?

스파이더(spider) 혹은 크롤러(crawler)라고도 불리는 로봇은 인터넷에 있는 웹페이지(웹문서)를 방문해서 수집하는 일을 합니다. 이 때 한 페이지만 방문하고 마는 것이 아니라 그 페이지에 링크되어 있는 또 다른 페이지를 차례로 방문합니다. 이처럼 링크를 따라 웹(web:거미줄)을 돌아다니는 모습이 마치 거미와 비슷하다고 해서 스파이더라고 부르는 것입니다.

참고로 각 검색엔진의 로봇에는 고유한 이름이 존재하며, 네이버 로봇의 이름은 cowbot이라고 합니다.

2.스파이더(spider),크롤러(crawler)가 하는 일은?

엄 청난 분량의 웹문서를 사람이 일일이 색인을 작성한다는 것은 불가능에 가깝습니다. 때문에 웹문서 검색에서는 사람이 일일이 색인을 다는 대신 프로그램이 이를 자동으로 수행해 줍니다. 색인작업을 하기 위해서는 우선 색인의 대상이 될 웹문서를 수집해야 합니다.
웹문서를 자동으로 수집해 주는 역할을 하는 것이 바로 로봇이라는 프로그램입니다.

3.스파이더(spider),크롤러(crawler)와 웹사이트(디렉토리)검색,웹문서검색의 관계는?

대 부분의 검색엔진은 "웹사이트(디렉토리)검색"과 "웹문서검색" 서비스를 병행하고 있는데 디렉토리(웹사이트)검색결과에 나오기 위해 홈페이지등록을 하는 것이고 자의든 타의든 홈페이지등록이 되어 있지 않은 경우에는 웹사이트( 디렉토리)검색결과에 나오지 않습니다.

홈페이지가 검색엔진에 등록된 경우 얼마 후에 그 검색엔진의 로봇은 홈페이지를 방문하여 문서를 수집해 갑니다.

홈페이지가 등록되어 있지 않은 경우에도 스파이더가 홈페이지를 방문하여 문서들을 수집해 갈 수 있습니다.

이렇게 수집된 문서들은 색인과정을 거친 후 검색창에 검색을 한 경우 관련 문서들을 "웹문서"검색결과에 나타나게 됩니다.

4.스파이더가 내 홈페이지의 문서들을 수집하게 하자

인 내심을 가지고서 기다리면 언젠가는 홈페이지를 방문하여 문서를 수집,색인하게 된다. 그러나 색인신청을 하는 방법도 있으므로 참조하도록 하자. 대부분의 메이저급 검색엔진들에서는 구글과 코리아와이즈넛의 웹문서검색서비스를 이용하고 있다. 과거에는 구글의 웹문서검색서비스를 많이 이용했으나 요즘에는 크게 구글,코리아와이즈넛,자체 웹문서검색서비스를 이용하고 있다. 특히 코리아와이즈넛의 웹문서검색서비스를 이용하는 검색엔진들이 늘어가고 있는 추세다.

구글에 URL을 등록하자 : http://www.google.co.kr/intl/ko/add_url.html
코리아와이즈넛에 사이트를 등록하자 : http://www.wisenut.co.kr/submit/

구글과 코리아와이즈넛의 웹문서검색서비스를 이용한 경우를 보자. 구글의 웹문서검색서비스를 이용한 경우 웹문서검색결과 우측에

코리아와이즈넛의 웹문서검색서비스를 이용한 경우 웹문서검색결과 우측에

란 로고가 있다.

각 검색엔진에 웹사이트(디렉토리)등록 못지 않게 메이저급검색엔진에 웹문서검색서비스를 제공하고 있는 구글과 코리아와이즈넛에 URL을 등록하여 이들로부터 서비스를 받고 있는 검색엔진의 웹문서검색결과에 자신의 홈페이지가 검색되도록 하자.

5.로봇 배제방법

검색로봇의 문제점


로 봇이라는 프로그램이 네트워크를 돌아다니게 되면 자칫 네트워크에 엄청난 트래픽(Traffic)이 발생할 수 있습니다. 즉, 네트워크에 과부하가 걸려 특정 사이트에 접속이 잘 되지 않거나 속도가 느려지는 문제가 생길 수 있습니다. 또한 동호회 명단, 직장 전화번호등 원치 않은 정보가 검색엔진에 노출되는 결과가 생길 수도 있습니다.

해결방안

1) 첫 번째로 어떤 사이트를 보려면 ID와 비밀번호가 필요하도록 만드는 방법입니다.

이 경우 로봇은 해당 사이트의 ID와 비밀번호를 가지고 있지 않기 때문에 접근할 수가 없게 됩니다. 이 방법은 로봇의 접근을 직접적으로 배제하는 강력한 수단이지만 사이트를 사용하는 사람들도 ID와 비밀번호를 입력해야 하는 불편함이 있습니다. 간혹 ID와 비밀번호로 막아놓은 페이지가 네이버의 웹문서 검색에 노출된다는 문의가 들어오기도 합니다.

하지만 링크로 연결되지 않는 한 네이버의 로봇은 비밀번호로 보안을 걸어놓은 문서에 접근하지 못합니다. 비밀번호로 보안을 걸어놓았는데도 웹검색에 노출이 되는 경우는 어떤 사람(주로 내부자)이 해당 문서의 URL을 다른 웹페이지에 적어놓았기 때문일 가능성이 큽니다.

2) 두 번째로 로봇 배제(Robot exclusion) 표준을 따르는 방법이 있습니다.

로봇 배제 표준이란 말 그대로 웹문서를 수집해 가는 로봇을 배제한다는 뜻입니다. 로봇의 배제와 관련된 내용을 적어 놓은 robots.txt 파일을 사이트의 최상위 주소(서버 루트 디렉토리 예:www.gaseo.com/robots.txt)에 저장하면 됩니다. robots.txt를 서브디렉토리에 놓는 경우 효력이 없다는 사실에 주의하세요.예를 들어, www.yourhost/~mypage 밑에 robots.txt가 있어도 이는 아무런 효력을 갖지 못합니다. 로봇은 오직 루트 디렉토리의 robots.txt만을 참조할 뿐입니다. 로봇의 접근을 어디까지 허용할 것이냐에 따라 robots.txt에 들어가는 내용은 달라집니다.로봇 배제에 대한 보다 자세한 내용은 http://www.robotstxt.org에서 확인할 수 있습니다.

(1) 모든 로봇을 배제하고 싶을 때

User-agent: *
Disallow: /

(2) 모든 로봇을 허용하고 싶을 때
이 경우에는 “robots.txt”를 작성할 필요가 없으나, 굳이 작성을 하자면 다음과 같습니다.
( (1)과 비교했을 때 “/”가 빠져 있습니다.)

User-agent: *
Disallow:

(3) 모든 로봇에게 서버의 일부분만을 제한하고 싶을 때

User-agent: *
Disallow: /my_photo/
Disallow: /my_diary/

이렇게 작성하면 로봇은 my_photo, my_diary라는 폴더에 속한 웹문서에 접근할 수 없습니다.

(4) 특정 로봇만을 배제하고 싶을 때
아래의 예에서는 “EvilRobot”이라는 이름을 가진 로봇만을 배제하게 됩니다.

User-agent: EvilRobot
Disallow: /

(5) 특정 로봇에게만 접근을 허용하고 싶을 때
아래의 경우 Cowbot만이 웹문서를 수집해갈 수 있습니다.

User-agent: Cowbot
Disallow:
User-agent: *
Disallow: /

3)세 번째로 메타태그를 이용하는 방법

“robots.txt” 를 작성하는 것과 유사한 방법으로 HTML문서의 와 태그 사이에 라는 메타태그를 추가하면 로봇은 웹문서를 가져갈 수 없습니다. 이 방법은 다소 번거롭기는 하지만 문서 하나하나에 대해 정확하게 명시를 해주기 때문에 가장 확실하게 로봇의 접근을 막을 수 있는 방법입니다.



그럼 저도 크롤러에 대한 공부를 하러가보겠습니다

다들 블로그 열공하세요!! ㅎㅎ 이상 무꼬였습니다!

반응형

'개발 & 강의 > 스크랩' 카테고리의 다른 글

[영상] 프로그래밍을 배워야 하는 이유는?  (2) 2014.10.12
반응형

안녕하세요 무꼬입니다.~~

 

우리가 아는 링크걸기.

즉, '하이퍼 링크(HyperLink Text)'는 보통

<a href="이동 할주소"> 하이퍼링크 </a>

이렇게 링크를 걸죠?

 

오늘은 div 혹은 span 혹은 table 자체에 링크를 걸어보는걸 알려드릴게요~

 

 

우선 DIV , SPAN, TABLE 은 보통 사용해보시면 아시다시피

어떤 박스의 개념이라고 말할수 있는데요.

이 분류된 박스 안에 글, 그림 등을 넣고 웹페이지를 표현할 수 있죠?

 

그런데!!! 이런 경우가 있습니다.

 

아, 그냥 DIV, SPAN, 테이블 자체를 클릭해도 링크가 걸리게 할순 없을까?

 

있지요!

 

우선 핵심 코딩 먼저 나열 하자면,

우리가 지금부터 알아야할 코드는 단 이거 하나입니다.

 

OnClick="location.href='http://canyou2.tistory.com/'"

 

온클릭(OnClick)인데요. 풀이 하자면,

 

클릭이 되었을때(OnClick) = 현재웹페이지의 위치(경로)를 (location.href=)

'http://canyou2.tistory.com' 로 변경해라.

 

 

그럼, 어디다가 갖다 붙이냐?

 

사용하시는 해당 태그에다가 그냥 붙이시면 됩니다~

<DIV onclick="location.href='http://art-life.tistory.com'"> 내용 </DIV>

 

<SPAN onclick="location.href='http://art-life.tistory.com'"> 내용 </SPAN>

 

<TABLE onclick="location.href='http://art-life.tistory.com'">

<TR>

<TD>

1번 셀

</TD>

</TR>

</TABLE>

 

테이블의 경우 각 셀(TD) 마다 다른 링크를 걸고 싶다면 각 TD에다가 삽입하셔도 좋습니다.

아 물론  

onclick="location.href='http://art-life.tistory.com'" 에서

http://art-life.tistory.com 이 부분은 원하시는 주소 적어 주시면

된다는 거 모르시는 분 없겠죠?ㅎㅎㅎ

 

자, 아주 좋은데 한 가지 문제점이 있어요.

이걸 클릭 할 수 있는 건지 아닌지 사용자가 분별하기가 힘들어요.

왜 일까요?

보통 하이퍼 링크의 경우에는 아래와 같이 마우스를 가져다대면 마우스의 커서가 손가락 모양으로 변하게 되어, 사용자에게

아 이건 클릭을 할 수 있는 링크 인가보다 라고 인식을 주게 되죠.

 

 

 

이와 같은 효과를 주기 위해서 STYLE 태그를 이용 해야 합니다~!

style="cursor:pointer;"

 

스타일= "커서를: 포인터로 바꾸어라;

 

 

이것 역시 적용시킬 곳에 넣어 주시기만 하면 됩니다 ㅎㅎ

<DIV style="cursor:pointer;"> 내용 </DIV> 

 

 

아래는 두가지를 동시에 적용 시킨 예제 입니다.

<div onclick="location.href='http://art-life.tistory.com'" style="cursor:pointer;">DIV로 만든 무꼬 블로그!</div>

<br><br>

<span onclick="location.href='http://art-life.tistory.com'" style="cursor:pointer;">SPAN으로 만든 무꼬 링크!</span>

 

<br><br>

 

<table border=1 onclick="location.href='http://art-life.tistory.com'" style="cursor:pointer;">
<tr>
<td>테이블로 만든 무꼬 링크!</td>
</tr>
</table>

 

DIV로 만든 무꼬 블로그!


SPAN으로 만든 무꼬 링크!

테이블로 만든 무꼬 링크!

 

 

 

 

이상 무꼬였습니다~ ㅎㅎ

 

즐거운 JavaScript 되세요~ ㅎㅎ

P.S - 궁금하신 점은 댓글로 달아주시면 신속한 답변이 당신을 기다릴 것입니다~ ㅎㅎ

반응형

'개발 & 강의 > JavaScript' 카테고리의 다른 글

티스토리 메뉴 변경용!  (0) 2014.09.17
반응형

 

안녕하세요~ 알기쉽게 설명하는 초보자를 위한 무꼬입니다.

오늘은 Visual Basic으로 암호화 및 복호화 코딩에 대해 강좌를 하도록 하겠습니다 ㅎㅎ


우선 암호화복호화에 대해 알아보죠~!


[암호화]

데이터 전송 시 타인의 불법적인 방법에 의해 데이터가 손실되거나 변경되는 것을 방지하기 위해 데이터를 변환하여 전송하는 방법.

의미를 알 수 없는 형식(암호문)으로 정보를 변환하는 것.


[복호화]

암호화의 반대 과정.



우선 암호화에는 대칭형(DES)과 비대칭형(RSA)이 있어요.

설명하기가 어려운 부분이 있어서 네이버 지식백과를 참고해서 설명해드릴게요~


대칭형 암호화 방식의 비밀키 암호화기법(DES)비대칭형 암호화 방식의 공개키 암호화 기법(RSA)이 있다. 비밀키 암호화 기법은 동일한 키로 암호화와 복호화를 수행하는 방법으로 보안 유지와 키 관리에 어려움이 있으나 알고리즘이 간단해 암호화 속도가 빠르고 용량이 작아 경제적이다. 공개키 암호화 기법은 공개되는 공개키(public key)와 본인만 사용하는 비밀키(private key)로 구성되는 것으로 공개키와 비밀키를 별도로 관리하기 때문에 키 관리가 용이하며 암호화와 사용자 인증이 동시에 이뤄진다는 특징이 있다. 이는 전자 문서의 디지털서명, 부인봉쇄에 사용된다. 그러나 알고리즘이 복잡해 속도가 느리다는 단점을 가지고 있다.

[네이버 지식백과] 암호화 [暗號化, encryption] (시사상식사전, 박문각)



DES기법 기초 및 중급 암호화 강좌에서 아주 적절한 예라고 생각해서ASCII 코드를 이용한 대칭기법 암호화를 강좌 하겠습니다 ㅎㅎㅎ


혹시라도 아스키코드(ASCIIcode)에 대해서도 모르시는 분들을 위해 조그만 설명을 드리자면,
 American Standard Code for Information Interchange 의 약자로서정보 교환용으로 미국에서 만든 표준 코드입니다.ASCII 코드 표

대문자, 소문자, 숫자, 특수기호, 제어정보등을 포함하는 8개의 비트 코드로 구성이 되며그 중 일곱개의 비트는 코드화되어 있는 문자세트,한 개는 패리티비트(에러 검사용)로 사용 됩니다~ 
뭔소린지 모르겠고, 그냥 암호화 하는 방법이나 가르쳐 달라구요? 그럼 본론으로 들어가볼까요?

[원리 알고리즘]

"Hello~? 무꼬의 블로그입니다!!!" 라는 문자열을 암호화 할 때.
1. 우선 해당 문자열의 길이를 구합니다.(Hello~? 무꼬의 블로그입니다!!! 는 길이가 20)
2. 문자열에서 n번째 글자를 따옴(첫번째부터 문자열길이 까지.)(첫번째 글자인 'H'를 따옴)
3. n번째 글자를 ASCII코드화(숫자화) 시킵니다.('H'를 ASCII코드화 시키면 '72'가 됨.)
4. 암호화 할 대칭 키(Key)만큼 해당숫자에서 뺌.(무꼬는 1을 뺄것임! 72 - 1   1의 데미지를 입었다!!!  71이 됨.더해도 상관은 없음 하지만 복호화 할때는 반대 작업이 필요하니 복호화 할땐거꾸로 빼줘야 겠죠?)
5.이제 이 숫자를 다시 문자화 시켜줌.('H'는 'G'라는 숫자가 되었다!!)
6. 이제 다시 2번으로 돌아가서 두번째, 세번째 문자를 차례로 위의 방법대로 진행합니다.그럼 해보진 않았지만 앞의 'Hello~?'만 보면 'Gdkkp}>' 라는 알수 없는 문자열로 변형 되어 있겠죠?(※한글은 더 복잡하게 알수없게 바뀝니다.)



이제 코딩을 보시죠.


[VB 코딩] 

 EnCoding(문자열)

'출처를 밝히지 않고 퍼갈수 없습니다. 출처를 밝히세요.'출처 무꼬's Art-Life  http://art-life.tistory.comFunction EnCoding(ByVal Input_Str AString'Input_Str:문자열을 받을 변수 Dim Len_Str As Double '문자열의 길이값을 저장할 변수Dim Result As String '결과값을 받을 변수
Dim
Temp_Str As String '임시로 문자를 받을 변수Len_Str = Len(Input_Str) '1. 해당문자열의 길이를 구합니다.
for As Double = 0 to Len_Str - 1 Temp_Str =  Mid(Input_Str,n,1)   '2. 문자열에서 n번째 글자를 따옵니다.'3. n번째 글자를 ASCII코드화(숫자화) 시키고(Asc) 4. 대칭 키 만큼 뺌!(-1) 5. 그리고 다시 문자화 시켜줌 (Chr) Temp_Str = Chr(Asc(Temp_Str) - 1Result &= Temp_Str '5.Next nMsgBox Result '메세지창으로 띄워줌. 혹은 EnCoding = Result 를 써저 재귀함수로 만들어주어도! ㅎㅎ



처음 하시더라도 위에 원리를 보시고 코딩을 분석하시면 되게 쉬울거에요.


자 그럼 복호화는 어떻게 하냐구요?

똑같아요.

다만 아까 대칭 키를 입력할때 빼거나, 더했을 텐데 (저는 -1 을 했죠 ㅎㅎ)

그 반대로 해주는 거죠.

암호화할 때 - 1 을 했다면 복호화 때는 + 1

- 2 를 했다면 복호화 할때는 + 2 를 해주면 된다는 거죠.


그럼 뭐 볼것도 없지만 복호화 코딩도 한번 보실까요?

 DeCoding(문자열)

'출처를 밝히지 않고 퍼갈수 없습니다. 출처를 밝히세요.'출처 무꼬's Art-Life  http://art-life.tistory.comFunction DeCoding(ByVal Input_Str AString'Input_Str:문자열을 받을 변수Dim Len_Str As Double '문자열의 길이값을 저장할 변수Dim Result As String '결과값을 받을 변수 
Dim 
Temp_Str As String '임시로 문자를 받을 변수Len_Str = Len(Input_Str) '1. 해당문자열의 길이를 구합니다.
for As Double = 0 to Len_Str - 1 Temp_Str =  Mid(Input_Str,n,1)   '2. 문자열에서 n번째 글자를 따옵니다.Temp_Str = Chr(Asc(Temp_Str) + 1)  '이 부분만 다르죠 ㅎㅎResult &= Temp_Str '5.Next nMsgBox Result '메세지창으로 띄워줌. 혹은 DeCoding = Result



이해 하셨으리라 믿겠습니다 ㅎㅎ
아 혹시나 궁금한점이 있으시거나,모르겠다 하시면 댓글을 달아주시면 최대한 빠른 시일 내에 답해드리도록 하겠습니다 ㅎㅎ



그럼 즐프로그래밍 하세요~ 이상 무꼬였습니다. ( p.s - 하트 한번 눌러주세요 ㅎㅎ)

반응형
반응형

<script type="text/javascript">
var _clickedMenu=""; //클릭된 메뉴를 기억하기 위한 전역변수
function changeTextColor(clickedMenu){ //메뉴 클릭시 작동
for(i=0;i<=6;i++){
document.getElementById("m_"+i).style.color="#ffffff"; //모든 메뉴를 검정색으로 변경
}
clickedMenu.style.color="#aa5555"; //클릭한메뉴를 빨강으로 변경
_clickedMenu=clickedMenu.text; //클릭한메뉴를 전역변수에 저장
}
function setOnColor(hoveredMenu) { //메뉴에 마우스 오버시 작동
hoveredMenu.style.color="#aa5555"; //폰트색을 빨강으로 변경
}

//메뉴에 마우스 아웃시 작동
function setOutColor(outedMenu) {
//마우스 아웃한 메뉴가 클릭한 메뉴라면 함수를 바로 빠져나온다.
if(outedMenu.text==_clickedMenu) return false;
//색깔을 검정으로 변경
outedMenu.style.color="#ffffff";
}

//메뉴보이기 [저작권] 무예꼬마
function MenuView(Sub_m){
 for (i=1;i<=6;i++){
  var Onview = document.getElementById('sub_' + i);
  Onview.style.display = "none";
 }
if(Sub_m != 0){
var Onview = document.getElementById(Sub_m);
Onview.style.display = "";
}
}

</script>

<div class="menu_frame">
<div class="menu_group" style="position: absolute; left: 800px; top: 800px;">

<a href="https://art-life.tistory.com/" title="무꼬's Art Life" id="m_0" onclick="changeTextColor(this);" onmouseover="setOnColor(this);" onmouseout="setOutColor(this);">
<font size=1>무꼬's</font><br><font size=5>ArtLife</font></a>

 |<a href="http://art-life.tistory.com/category/Issue" id="m_6" onclick="changeTextColor(this);" onmouseover="setOnColor(this); MenuView('sub_6');" onmouseout="setOutColor(this);">
Issue</a></div>
 |<a href="http://art-life.tistory.com/category/Martial%20Art%27s" id="m_2" onclick="changeTextColor(this);" onmouseover="setOnColor(this); MenuView('sub_2');" onmousout="setOutColor(this);">
Martial Art's</a>
 |<a href="http://art-life.tistory.com/category/Programming" id="m_3" onclick="changeTextColor(this);" onmouseover="setOnColor(this); MenuView('sub_3');" onmouseout="setOutColor(this);">
Programming</a>
 |<a href="http://art-life.tistory.com/category/Game" id="m_4" onclick="changeTextColor(this);" onmouseover="setOnColor(this); MenuView('sub_4');" onmouseout="setOutColor(this);">
GAME</a>
 |<a href="http://art-life.tistory.com/category/Health" id="m_5" onclick="changeTextColor(this);" onmouseover="setOnColor(this); MenuView('sub_5');" onmouseout="setOutColor(this);">
Health</a>
|<a href="http://art-life.tistory.com/category/Daily" id="m_1" onclick="changeTextColor(this);" onmouseover="setOnColor(this); MenuView('sub_1');" onmouseout="setOutColor(this);">
Daily</a>
</div>
<div id="sub_1" style="display:none;">
<a href="http://art-life.tistory.com/category/Daily">Daily</a> |
<a href="http://art-life.tistory.com/category/Daily/외출">외출</a> |
<a href="http://art-life.tistory.com/category/Daily/Food">Food</a> |
<a href="http://art-life.tistory.com/category/Daily/일상">일상</a> |
</div>
<div id="sub_2" style="display:none;">
<a href="http://art-life.tistory.com/category/Martial Art's">Martial Art's</a> |
<a href="http://art-life.tistory.com/category/Martial Art's/기사">기사</a>
</div>
<div id="sub_3" style="display:none;">
<a href="http://art-life.tistory.com/category/Programming">Programming</a> |
<a href="http://art-life.tistory.com/category/Programming/PHP">PHP</a> |
<a href="http://art-life.tistory.com/category/Programming/JavaScript">JavaScript</a> |
<a href="http://art-life.tistory.com/category/Programming/기사">기사</a>
</div>
<div id="sub_4" style="display:none;">
<a href="http://art-life.tistory.com/category/GAME">GAME</a> |
<a href="http://art-life.tistory.com/category/GAME/Ragnarok">라그나로크</a> |
<a href="http://art-life.tistory.com/category/GAME/기사 & 리뷰">기사 & 리뷰</a> |
</div>
<div id="sub_5" style="display:none;">
<a href="http://art-life.tistory.com/category/Health">Health</a> |
<a href="http://art-life.tistory.com/category/Health/기사">기사</a>
</div>
<div id="sub_6" style="display:none;">
<a href="http://art-life.tistory.com/category/Issue">Issue</a>
<a href="http://art-life.tistory.com/category/Issue/유머">유머</a>
<a href="http://art-life.tistory.com/category/Issue/기사">기사[Hot issue]</a>
</div>

반응형
반응형

 

 

접속한 사용자의 브라우저

(Explorer, 구글 크롬, Firefox, 아이폰, 아이패드, 안드로이드, 사파리...)를 구할 수 있습니다.

그리고 브라우저를 구하는데 실패했다면 'none' 문자열을 표시합니다.



브라우저를 구할 웹페이지의 아무곳에나 집어 넣습니다.

<?

function getBrowser(){

$b_list = array('MSIE', 'Chrome', 'Firefox', 'iPhone', 'iPad', 'Android', 'PPC', 'Safari', 'none');

$b_name = 'none';


foreach ($b_list as $user_browser){

 if($user_browser === 'none') break;

 if(strpos($_SERVER['HTTP_USER_AGENT'], $user_browser)){

 $b_name = $user_browser;

 break;

  } }

 return $b_name;

}

?>



사용방법

<?

echo getBrowser()."로 접속 중 입니다.";

?>

결과화면

반응형

+ Recent posts