메뉴 건너뛰기

XE 개인 임의 함수 추가

Average Rating:
 0명 참여
Rate this page:
평점 한줄평 글쓴이 작성날짜

xe에서 기본적으로 읽어들이는 func.inc.php 파일 안에 유저의 임의 함수를 추가하여 광역적으로 자유롭게 사용할 수 있습니다.


/* 개별적으로 추가한 user 함수 */

//첨부된 자막파일의 내용에서 특정 문자를 검출하여 리턴
function get_file_utf8($url){
  $crl = curl_init();
    $timeout = 5;
    curl_setopt ($crl, CURLOPT_URL,$url);
    curl_setopt ($crl, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt ($crl, CURLOPT_CONNECTTIMEOUT, $timeout);
    $ret = curl_exec($crl);
    curl_close($crl);
 
 $sub_encode = mb_detect_encoding($ret, 'UTF-8,UTF-32,EUC-KR,cp-949,cp949,ksc-5601,ksc-c-5601-1987,ISO-10646,ANSI,UNICODE,UNI-CODE,iso-8859,iso-8859-1,iso-8859-15,windows-1251,windows-1252',true);

 //엔코딩이 UTF-8이 아닐 경우
 //일반적으로 EUC-KR 인코딩이어야 하며
 //ISO-8859-1일 경우에는 문제가 발생한다.
 //되도록 자막파일은인코딩을 UNICODE 또는 EUC-KR(한국어)로 변경하고 업로드하길 바람.
 //if (mb_detect_encoding($ret, 'UTF-8', false) === "UTF-8") { 
 if($sub_encode !== 'UTF-8') {
  echo '[주의]자막파일 인코딩 형식 : '.'<span class="btn btn-danger btn-xs">'.$sub_encode.'</span>';
  
  if($sub_encode == 'EUC-KR') {
   $ret = mb_convert_encoding($ret, 'UTF-8', $sub_encode);
  } elseif($sub_encode == 'ISO-8859-1') {
   $ret = mb_convert_encoding($ret, 'UTF-8', 'EUC-KR');
  } else {
   $ret = mb_convert_encoding($ret, 'UTF-8', $sub_encode);
  }
  //$ret = iconv('EUC-KR','UTF-8', $ret);
  //$ret = iconv($sub_encode,'UTF-8', $ret);
  //$ret = iconv($sub_encode,'EUC-KR', $ret);
  //$ret = mb_convert_encoding($ret, 'UTF-8', $sub_encode);
  //$ret = mb_convert_encoding($ret, 'EUC-KR', $sub_encode);
  //$ret = mb_convert_encoding($ret, 'UTF-8', 'EUC-KR');
  
  //$ret = utf8_decode($ret); 
  //$ret = utf8_html_encode($ret);
    }
    return $ret;
}



위와 같은 함수를 func.inc.php 최하단에 정의해 두고 아래와 같이 호출하여 사용할 수 있습니다.



                <!-- sub 표시 1/1 시작 -->
                <!-- smi, srt, ass 파일일 경우-->
                <!--@if(preg_match('/\.(smi|srt|ass)$/i',$file->source_filename))-->
                 <!--순수 자막-->
                    <!-- get_file_utf8() 함수는 xe/config/func.inc.php 최하단에 추가하였음 -->
     {@$sub_texts = get_file_utf8(geturl().$file->uploaded_filename);}
                    <!-- 'sub'문자가 포함 되었는지 검색하고 결과를 표시함-->
     {strpos($sub_texts, 'sub') ? '<span class="btn btn-success btn-xs"> sub 문자 포함됨</span><a data-toggle="collapse" href="#sub"><span class="btn btn-info btn-xs">자막보기</span></a>' : '<a data-toggle="collapse" data-parent="#accordion" href="#sub"><span class="btn btn-info btn-xs">자막보기</span></a>'}
                    <!-- 자막 전체를 접기/펼치기 내용으로 표시 -->
                    <span id="sub" class="panel-collapse collapse">
                  <!-- 자막 때문에 페이지 로딩이 느려짐. 자막보기를 팝업 링크로 해도 좋을 듯-->
                     {$sub_texts}
                    </span>
                <!--@end-->
                <!-- sub 표시 1/1 끝 -->



물론 require() 함수로 별도의 파일을 생성하여 불러들이는 방법도 유용할 것 같습니다.





제목 날짜
Star Rating 별점 위젯 업데이트 정보   2014.03.09
php 가변함수  
    6
test  
    5
rest_default 버그 잡기  
    9
별점 추가작업  
    7
태그 목록