모바일인지 체크하기 위해서 다음과 같이 개발하였다. 여기서는 php codeigniter 를 사용하였습니다.
다음 함수는 소스로 사용하면 되겠습니다.
$_SERVER['HTTP_USER_AGENT'] 를 찍어보면 pc 에서는 다음과 같이
//mozilla/5.0 (windows nt 6.1; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/60.0.3112.113 safari/537.36
출력합니다. 그래서 모바일에서만 출력 되는 값들 iphone, mobile, android 기타등등을 배열에 담습니다.
strpos 함수를 이용하였으며 strpos 함수는 대소문자를 구분하니깐 대문자와 소문자 모두 배열에 담아서
존재할 경우 Mobile 단어를 찍고 반환 합니다. 최종 반환 값은 true 와 false 값이겠습니다.
function MobileCheck() { //mozilla/5.0 (windows nt 6.1; win64; x64) applewebkit/537.36 (khtml, like gecko) chrome/60.0.3112.113 safari/537.36 $HTTP_USER_AGENT = strtolower($_SERVER['HTTP_USER_AGENT']); $os="Computer"; $MobileArray = array("lg","iphone","lgtelecom","skt","mobile","samsung","nokia","blackberry","android","android","sony","phone", "LG","IPHONE","LGTELECOM","SKT","MOBILE","SAMSUNG","NOKIA","BLACKBERRY","ANDROID","ANDROID","SONY","PHONE"); for($i=0; $i<sizeof($MobileArray); $i++){ if (strpos($HTTP_USER_AGENT, $MobileArray[$i])) { $os= "Mobile"; } } return $os=="Mobile" ? TRUE :FALSE; }
위와 같은 함수를 다음과 같이 사용합니다.
if(MobileCheck()){ // 모바일일 경우 아래 실행 // }else{ //pc 일 경우 실행 }
codigniter 에서는 helper 에 임의값으로 정해서 php 파일로 생성합니다.
여기서는 mobilecheck_helper.php 로 만들어서 MobileCheck 함수를 넣었습니다.
config/autoload.php ---->
$autoload['helper'] = array('url', 'mobilecheck');
이와 같이 하면 모바일과 pc 에 환경에 따라 원하는 데로 코딩할 수 있겠습니다.
예를 들어 macaronics.net 사이트 제가 개인적으로 블로그를 만든 사이트인경우에
다음과 같이 사용해 보았습니다.
header.php
<div class="col-sm-9 top-info" > <?php if(MobileCheck()){ // 모바일일 경우 아래 실행 include APPPATH ."views/include/mobile_header_menu_v.php"; }else{ // PC 일경우 아래 실행 include APPPATH ."views/include/pc_header_menu_v.php"; } ?> </div>
mobile_header_menu_v.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> <ul> <?php if($this->session->userdata("logged_in")==TRUE){ //로그인일 경우 실행 echo ' <li data-toggle="tooltip" data-placement="bottom" title="포스트하기"><a href="/index.php/user/post" class="my-skype" ><i class="glyphicon glyphicon-pencil"></i></a></li> <li data-toggle="tooltip" data-placement="bottom" title="로그아웃"><a href="/index.php/auth/logout" class="my-pint" ><i class="glyphicon glyphicon-log-out"></i></a></li> <li data-toggle="tooltip" data-placement="bottom" title="'.$this->session->userdata('nickname').'"><a href="/user" class="my-rss"><i class="glyphicon glyphicon-cog"></i></a></li> '; if(@$this->session->userdata("auth_code") >=15){ //관리자 일경우 실행 echo ' <li data-toggle="tooltip" data-placement="bottom" title="관리자"><a href="/index.php/admin/" class="my-skype" ><i class="glyphicon glyphicon-star"></i></a></li>'; } }else{ echo ' <li data-toggle="tooltip" data-placement="bottom" title="로그인"><a href="/index.php/auth/" class="my-skype" ><i class="glyphicon glyphicon-user"></i></a></li>'; } ?> </ul>
pc_header_menu_v.php
<?php defined('BASEPATH') OR exit('No direct script access allowed'); ?> <?php $returnURL =$_SERVER['REQUEST_URI']; if(@$this->session->userdata('logged_in')==TRUE) { ?> <?php if(@$this->session->userdata('auth_code') >= '15'){ //관리자일 경우 실행 echo ' <span class="hidden-xs"> <i class="fa fa-user"> </i><a href="/user">'.$this->session->userdata('nickname').'</a> 님 환영합니다. </span> <span class="hidden-xs"><i class="fa fa-plus-square-o"></i><a href="/index.php/admin">관리자화면 </a></span>'; ?> <span class="hidden-xs"><i class="fa fa-sign-out"></i><a href="/index.php/auth/logout<?=empty($returnURL) ? '' : '?returnURL='.rawurlencode($returnURL) ?>">로그 아웃</a></span> <?php }else{ // 가입한 유저일 경우 실행 echo ' <span class="hidden-xs"> <i class="fa fa-user"> </i><a href="/index.php/user">'.$this->session->userdata('nickname').'</a> 님 환영합니다. </span> <span class="hidden-xs"><i class="fa fa-plus-square-o"></i><a href="/user">USER 화면 </a></span>'; ?> <span class="hidden-xs"><i class="fa fa-sign-out"></i><a href="javascript:facebookLogOut()">로그 아웃</a></span> <? } ?> <?php } else{ //1.현재 주소를 가지고서 로그인 페이지로 간다. //2. 로그인 페이지에서 로그인폼으로 갈때 다시 $returnURL 값을 저장후 가져간다. //3.로그인 $returnURL 을 이용해서 폼에서 다시 보내 로그인 한후 현재 로그인 클릭전 위치로 되돌아 간다. //$returnURL =$_SERVER['REQUEST_URI']; //http:localhost/ 이후 값이 저장됨. ?> <span class="hidden-xs"><i class="fa fa-thumbs-o-up"></i><a href="/index.php/user/register">회원가입</a></span> <span class="hidden-xs"><i class="fa fa-sign-in"></i><a href="/index.php/auth<?=empty($returnURL) ? '' : '?returnURL='.rawurlencode($returnURL) ?>">로그인</a></span> <?php } ?> <span><i class="fa fa-share-square"></i> <a href="/index.php/user/post" id="post_posting"><?php echo $sns_id ?>포스트 하기</a></span> PC
모바일
댓글 ( 4)
댓글 남기기