호스팅
호스팅 정보
호스팅 토크
고민 상담
꿀팁 공유
최신 할인 소식
나우호스팅 공짜로 사용하기!
웹개발
그누보드
워드프레스
라이믹스
PHP Legacy
PHP 모던
자바스크립트
개발자 Q&A
깃허브 공유
코드 리뷰방
개발 챌린지
툴 추천소
VIP 자료실
라이브러리
IT트렌드
AI
트렌드 토론
미래 예측
기술 분석
창업&수익
내 창업 이야기
아이디어 브레인스토밍
창업 Q&A
도전일지
창업 꿀팁
실패토크
성공인터뷰
창업 툴박스
애드센스
커뮤니티
자유게시판
갤러리
유튜브
가입인사
공지사항
회원 등급 안내
추천 & 홍보 게시판
많이 검색된 키워드
#
2025
#
작성
#
2026
#
d
#
dd
검색조건
제목+내용
제목
내용
회원아이디
이름
and
or
로그인
회원가입
새글
최근 365일 이내 등록된 새글 이에요.
전체
글
댓글
JQuery .text() : 텍스트 노드 추출 및 설정
[code]jquery .text()[/code] ### jQuery .text() 메서드 jQuery .text() 메서드는 HTML 요소 내부의 텍스트를 반환하거나 설정하는 데 사용됩니다. 이 메서드는 jQuery 1.2 버전부터 사용할 수 있습니다. ### .text() 메서드의 사용법 #### 텍스트 반환 `.text()` 메서드는 HTML 요소 내부의 텍스트를 반환합니다. 예를 들어: ```html <div id=\"example\">Hello, World!</div> ``` ```javascript var text = $(\"#example\").text(); console.log(text); // Hello, World! ``` #### 텍스트 설정 `.text()` 메서드는 HTML 요소 내부의 텍스트를 설정할 수도 있습니다. 예를 들어: ```html <div id=\"example\"></div> ``` ```javascript $(\"#example\").text(\"Hello, World!\"); console.log($(\"#example\").text()); // Hello, World! ``` ### .text() 메서드의 소스 코드 `.text()` 메서드는 jQuery의 `core.js` 파일에 정의되어 있습니다. 소스 코드는 다음과 같습니다: ```javascript // jQuery 3.6.0 버전의 core.js 파일에서 .text() 메서드의 소스 코드 // ... // .text() 메서드 text: function( value ) { return value === undefined ? ( this.length ? this : this.selector ) : this.each( function() { if ( typeof value === \"number\" ) { value = String( value ); } if ( typeof value === \"string\" ) { // #7980: Remove element nodes from dom value = value.replace( /<(?:\W+\w+|\w+\W+)*?>/g, \"\" ); this.textContent = value; } else { this.textContent = value; } } ); }, // ... ``` ### .text() 메서드의 동작 방식 `.text()` 메서드는 다음과 같은 동작 방식을 수행합니다: 1. `value` 매개변수가 정의되지 않은 경우, `.text()` 메서드는 HTML 요소의 텍스트를 반환합니다. 2. `value` 매개변수가 정의된 경우, `.text()` 메서드는 HTML 요소의 텍스트를 설정합니다. 3. `value` 매개변수가 숫자인 경우, `.text()` 메서드는 숫자를 문자열로 변환합니다. 4. `value` 매개변수가 문자열인 경우, `.text()` 메서드는 문자열에서 HTML 태그를 제거하고 텍스트만 남깁니다. 5. `.text()` 메서드는 HTML 요소의 텍스트를 설정할 때 `textContent` 속성을 사용합니다. ### 결론 `.text()` 메서드는 jQuery에서 HTML 요소 내부의 텍스트를 반환하거나 설정하는 데 사용됩니다. 이 메서드는 jQuery 1.2 버전부터 사용할 수 있으며, 소스 코드는 jQuery의 `core.js` 파일에 정의되어 있습니다. `.text()` 메서드는 HTML 요소의 텍스트를 설정할 때 `textContent` 속성을 사용합니다.
나우호스팅 2025-02-22
자바스크립트
JQuery .html() 메서드: HTML 요소의 내용을 조작하는 방법
[code]jquery .html()[/code] ### jQuery .html() 함수 jQuery .html() 함수는 HTML 요소의 내용을 가져오거나 설정하는 데 사용됩니다. 이 함수는 jQuery 객체의 메서드 중 하나이며, DOM 요소의 내용을 조작하는 데 유용합니다. ### .html() 함수의 사용법 `.html()` 함수는 두 가지 형태로 사용할 수 있습니다. #### 1. `.html()` 함수를 사용하여 HTML 요소의 내용을 가져오기 ```javascript var html = $(\'div\').html(); console.log(html); ``` 이 코드는 `div` 요소의 내용을 가져와 `html` 변수에 저장합니다. #### 2. `.html()` 함수를 사용하여 HTML 요소의 내용을 설정하기 ```javascript $(\'div\').html(\'<p>Hello, World!</p>\'); ``` 이 코드는 `div` 요소의 내용을 `<p>Hello, World!</p>`으로 설정합니다. ### .html() 함수의 소스 코드 `.html()` 함수의 소스 코드는 jQuery의 내부 구현에 따라 다를 수 있습니다. 하지만 일반적으로 `.html()` 함수는 jQuery의 `core.js` 파일에 정의되어 있습니다. ```javascript // jQuery 3.6.0 버전의 core.js 파일에서 .html() 함수의 소스 코드 function html() { return this.contents().removeData(); } function html( value ) { return access( this, function( value ) { if ( typeof value === \"string\" ) { value = value.replace( rcdataExpr, \"$1\" ); } else if ( this.nodeType === 1 || this.nodeType === 11 || this.nodeType === 9 ) { this.innerHTML = value; } else { this.textContent = value; } return this; }, value, arguments.length ); } ``` 이 소스 코드는 `.html()` 함수의 두 가지 형태를 정의합니다. - 첫 번째 `.html()` 함수는 HTML 요소의 내용을 가져오기 위해 사용됩니다. - 두 번째 `.html()` 함수는 HTML 요소의 내용을 설정하기 위해 사용됩니다. ### 예제 ```javascript // HTML 요소의 내용을 가져오기 var html = $(\'div\').html(); console.log(html); // HTML 요소의 내용을 설정하기 $(\'div\').html(\'<p>Hello, World!</p>\'); console.log($(\'div\').html()); ``` 이 예제는 `.html()` 함수의 두 가지 형태를 사용하여 HTML 요소의 내용을 가져오고 설정하는 방법을 보여줍니다. ### 결론 `.html()` 함수는 jQuery 객체의 메서드 중 하나이며, HTML 요소의 내용을 가져오거나 설정하는 데 사용됩니다. 이 함수는 두 가지 형태로 사용할 수 있으며, jQuery의 내부 구현에 따라 소스 코드가 다를 수 있습니다.
나우호스팅 2025-02-22
자바스크립트
jQuery 선택자 $(selector) : 선택자와 DOM 요소 연결하기
[code]jquery $(selector) [/code] ### jQuery $(selector) jQuery는 자바스크립트 라이브러리 중 하나로, DOM(Document Object Model) 선택과 조작을 쉽게 할 수 있도록 도와줍니다. jQuery의 가장 기본적인 함수 중 하나가 $(selector)입니다. ### $(selector)란? $(selector) 함수는 HTML 문서 내의 요소를 선택하는 함수입니다. selector는 CSS 선택자와 유사한 형태로 작성됩니다. 예를 들어, `#id`는 id가 `id`인 요소를 선택하고, `.class`는 class가 `class`인 요소를 선택합니다. ### 자바스크립트 소스 코드 jQuery의 소스 코드는 다음과 같습니다. 이 코드는 jQuery 3.6.0 버전을 기준으로 작성되었습니다. ```javascript // jQuery 3.6.0 소스 코드 (부분) // $(selector) 함수 function Sizzle(selector, context, results, seed) { var match, nodes = [], rets = results || [], i = 0; context = context || document; // ... } function jQuery(selector, context) { return new jQuery.fn.init(selector, context); } jQuery.fn = jQuery.prototype = { constructor: jQuery, init: function(selector, context) { var match, rets = [], i = 0; if (typeof selector === \"string\") { // ... match = Sizzle(selector, context, rets); // ... } else { // ... } return this; }, // ... }; // ... ``` ### $(selector) 함수 동작 과정 1. `Sizzle` 함수 호출: `Sizzle` 함수는 jQuery의 내부 함수로, CSS 선택자를 HTML 문서 내의 요소로 변환하는 역할을 합니다. 2. `jQuery` 함수 호출: `jQuery` 함수는 `$(selector)` 함수를 호출하여 `Sizzle` 함수를 호출합니다. 3. `init` 함수 호출: `init` 함수는 `jQuery` 함수의 prototype 함수로, `selector`와 `context`를 받아와 `Sizzle` 함수를 호출합니다. 4. `Sizzle` 함수 결과: `Sizzle` 함수는 선택된 요소를 배열로 반환합니다. 5. 결과 반환: `init` 함수는 선택된 요소를 배열로 반환합니다. ### 예제 ```javascript // $(selector) 함수 사용 예제 $(document).ready(function() { var $element = $(\"#myId\"); console.log($element); // <div id=\"myId\">Hello World!</div> var $elements = $(\".myClass\"); console.log($elements); // [<div class=\"myClass\">Hello World!</div>, <span class=\"myClass\">Hello World!</span>] }); ``` ### 결론 jQuery의 $(selector) 함수는 자바스크립트 라이브러리 중 하나로, DOM 선택과 조작을 쉽게 할 수 있도록 도와줍니다. 이 함수는 `Sizzle` 함수를 호출하여 CSS 선택자를 HTML 문서 내의 요소로 변환한 후 결과를 반환합니다.
나우호스팅 2025-02-22
자바스크립트
카카오 API를 이용한 주소 좌표 추출 방법
[code]$api_key = ‘카카오 api키를 넣어주세요.’; $address = urlencode(‘주소’); $url = “https://dapi.kakao.com/v2/local/search/address.json?query=”.$address; $headers = array(“Authorization:KakaoAK $api_key”); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $content = curl_exec($ch); curl_close($ch); $content=json_decode($content,true); $latlng = array(); $lat = $content[documents][0][‘address’][‘x’]; $lng = $content[documents][0][‘address’][‘y’]; //좌표값 $lat,$lng 를 원하는곳에 저장하여 이용하시면 됩니다.[/code] **카카오맵 API를 사용한 주소 좌표 변환** 카카오맵 API를 사용하여 주소에서 좌표를 변환하는 방법에 대해 설명하겠습니다. 이 예제는 PHP로 작성되었습니다. ### 카카오맵 API 키 설정 카카오맵 API를 사용하기 위해 API 키를 설정해야 합니다. API 키를 설정하는 방법은 카카오맵 API 공식 문서를 참조하세요. ```php $api_key = \'카카오 API 키를 넣어주세요.\'; ``` ### 주소 URL 인코딩 주소 URL 인코딩을 위해 `urlencode()` 함수를 사용합니다. ```php $address = urlencode(\'주소\'); ``` ### API 요청 URL 설정 API 요청 URL을 설정합니다. 이 예제에서는 `https://dapi.kakao.com/v2/local/search/address.json` API를 사용합니다. ```php $url = \"https://dapi.kakao.com/v2/local/search/address.json?query=\" . $address; ``` ### 헤더 설정 API 요청 헤더를 설정합니다. 이 예제에서는 `Authorization` 헤더를 사용하여 API 키를 전달합니다. ```php $headers = array(\"Authorization: KakaoAK $api_key\"); ``` ### cURL 설정 cURL 설정을 위해 `curl_init()` 함수를 사용합니다. ```php $ch = curl_init(); ``` ### cURL 옵션 설정 cURL 옵션을 설정합니다. ```php curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); ``` ### API 요청 실행 API 요청을 실행합니다. ```php $content = curl_exec($ch); ``` ### cURL 종료 cURL을 종료합니다. ```php curl_close($ch); ``` ### JSON 디코딩 JSON 디코딩을 위해 `json_decode()` 함수를 사용합니다. ```php $content = json_decode($content, true); ``` ### 좌표 추출 좌표를 추출합니다. ```php $latlng = array(); $lat = $content[\'documents\'][0][\'address\'][\'x\']; $lng = $content[\'documents\'][0][\'address\'][\'y\']; ``` ### 결과 좌표를 원하는 곳에 저장하여 이용할 수 있습니다. ```php // 좌표값 $lat, $lng 를 원하는곳에 저장하여 이용하시면 됩니다. ``` ### 예제 ```php $api_key = \'카카오 API 키를 넣어주세요.\'; $address = urlencode(\'서울특별시 종로구 세종대로 1\'); $url = \"https://dapi.kakao.com/v2/local/search/address.json?query=\" . $address; $headers = array(\"Authorization: KakaoAK $api_key\"); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); $content = curl_exec($ch); curl_close($ch); $content = json_decode($content, true); $latlng = array(); $lat = $content[\'documents\'][0][\'address\'][\'x\']; $lng = $content[\'documents\'][0][\'address\'][\'y\']; echo \"좌표: $lat, $lng\"; ``` 이 예제는 주소에서 좌표를 변환하는 방법을 보여줍니다. 카카오맵 API 키를 설정하고, 주소 URL 인코딩을 하여 API 요청을 실행한 후, JSON 디코딩을 하여 좌표를 추출합니다.
나우호스팅 2025-02-22
PHP Legacy
PHP 파일기반 캐시기능 구현하기
[code]//나우호스팅 스마트캐시function smart_cache ($type,$timeout,$cache_dir,$cache_file,$content=”){//$type = check , run//$timeput = 캐시파일 유효기간 (초)//$cache_dir = 캐시파일이 저장될 폴더//$cache_file = 캐시파일 이름에서//$content = 캐시파일 저장될 내용if($type == ‘check’){//필수입력사항 체크if(!is_dir($cache_dir)){echo “캐시파일 저장경로가 올바르지 않습니다.”;}if(file_exists($cache_dir.$cache_file)){//파일이 있으니 파일 만든 시간 가져오기$cache_file_time = filemtime($cache_dir.$cache_file);$current_time = time(); //캐시파일 유효기간 체크후 리턴if($current_time – $cache_file_time < $timeout){return true;}else{return false;}}else{//파일이 없으니 리턴함return false;}}//캐시파일 생성if($type == ‘make’){$file_handle = fopen($cache_dir.$cache_file,’w’);fwrite($file_handle,$content);fclose($file_handle);}}1.위 함수를 어디서든 불러올 수 있는곳에 저장합니다.2.자신의 홈계정 루트디렉토리에 cache폴더를 생성합니다.3.아래 코드는 실제 사용 방법입니다.<?//캐시구간 시작************************************************************************************$this_cache_timeout = 600; //600은 10분입니다.$this_cache_dir = $_SERVER[‘DOCUMENT_ROOT’].’/cache’; // 자신의 홈계정 루트디렉토리에 cache폴더를 생성합니다.$this_cache_file = ‘main_cache.htm’; //캐시파일 이름(위에 지정한 폴더에 저장됩니다.)$this_cache_result = smart_cache(‘check’,$this_cache_timeout,$this_cache_dir,$this_cache_file);if($this_cache_result){include $this_cache_dir.$this_cache_file;}else{ob_start();//////////////////////////////////////////////////////////////////////////////////////////////////캐시파일 저장할 내용 시작////////////////////////////////////////////////////////////////////////?>PHP내용….<?//////////////////////////////////////////////////////////////////////////////////////////////////캐시파일 저장할 내용 끝/////////////////////////////////////////////////////////////////////////$cache_content = ob_get_contents();ob_end_flush(); smart_cache(‘make’,$this_cache_timeout,$this_cache_dir,$this_cache_file,$cache_content);}//캐시구간 끝*************************************************************************************?>[/code] **나우호스팅 스마트 캐시 함수** 나우호스팅 스마트 캐시 함수는 PHP에서 캐시를 사용하는 데 도움이 됩니다. 캐시는 웹 페이지를 로드할 때마다 서버에 요청을 보내는 대신, 이전에 로드한 웹 페이지를 저장해두고 다음에 요청이 들어오면 저장된 웹 페이지를 바로 반환하는 방법입니다. ### 함수 설명 `smart_cache` 함수는 두 가지 기능을 제공합니다. 1. `check` : 캐시 파일이 유효한지 확인합니다. 2. `make` : 캐시 파일을 생성합니다. ### 함수 매개 변수 * `$type` : 함수를 호출할 때 사용하는 타입. `check` 또는 `make` 중 하나를 지정합니다. * `$timeout` : 캐시 파일의 유효 기간(초). 캐시 파일이 생성된 후 이 시간이過ぎ면 캐시 파일은 삭제됩니다. * `$cache_dir` : 캐시 파일이 저장될 폴더의 경로입니다. * `$cache_file` : 캐시 파일의 이름입니다. * `$content` : 캐시 파일에 저장될 내용입니다. ### 함수 구현 ```php function smart_cache($type, $timeout, $cache_dir, $cache_file, $content = \"\") { // 캐시 타입이 check 인 경우 if ($type == 'check') { // 필수 입력 사항 체크 if (!is_dir($cache_dir)) { echo \"캐시 파일 저장 경로가 올바르지 않습니다.\"; } // 캐시 파일이 존재하는지 확인 if (file_exists($cache_dir . $cache_file)) { // 파일이 있으니 파일 만든 시간 가져오기 $cache_file_time = filemtime($cache_dir . $cache_file); $current_time = time(); // 캐시 파일 유효 기간 체크 후 리턴 if ($current_time - $cache_file_time < $timeout) { return true; } else { return false; } } else { // 파일이 없으니 리턴함 return false; } } // 캐시 파일 생성 if ($type == 'make') { $file_handle = fopen($cache_dir . $cache_file, 'w'); fwrite($file_handle, $content); fclose($file_handle); } } ``` ### 함수 사용 방법 1. 함수를 어디서든 불러올 수 있는 곳에 저장합니다. 2. 자신의 홈 계정 루트 디렉토리에 `cache` 폴더를 생성합니다. 3. 아래 코드는 실제 사용 방법입니다. ```php // 캐시 구간 시작 ************************************************************************************ $this_cache_timeout = 600; // 600은 10분입니다. $this_cache_dir = $_SERVER['DOCUMENT_ROOT'] . '/cache'; // 자신의 홈 계정 루트 디렉토리에 cache 폴더를 생성합니다. $this_cache_file = 'main_cache.htm'; // 캐시 파일 이름(위에 지정한 폴더에 저장됩니다.) $this_cache_result = smart_cache('check', $this_cache_timeout, $this_cache_dir, $this_cache_file); if ($this_cache_result) { include $this_cache_dir . $this_cache_file; } else { ob_start(); ///////////////////////////////////////////////////////////////////////////////////////////////////// // // // // 캐시 파일 저장할 내용 시작//////////////////////////////////////////////////////////////////////// ?> PHP 내용…… <? ///////////////////////////////////////////////////////////////////////////////////////////////////// // // // // 캐시 파일 저장할 내용 끝///////////////////////////////////////////////////////////////////////// $cache_content = ob_get_contents(); ob_end_flush(); smart_cache('make', $this_cache_timeout, $this_cache_dir, $this_cache_file, $cache_content); } // 캐시 구간 끝 ************************************************************************************* ?> ``` ### 함수 설명 1. `$this_cache_timeout` : 캐시 파일의 유효 기간(초)입니다. 캐시 파일이 생성된 후 이 시간이過ぎ면 캐시 파일은 삭제됩니다. 2. `$this_cache_dir` : 캐시 파일이 저장될 폴더의 경로입니다. 3. `$this_cache_file` : 캐시 파일의 이름입니다. 4. `$this_cache_result` : 캐시 파일이 유효한지 확인한 결과입니다. `true` 이면 유효하고, `false` 이면 유효하지 않습니다. 5. `ob_start()` : 출력 버퍼를 시작합니다. 6. `ob_get_contents()` : 출력 버퍼의 내용을 가져옵니다. 7. `ob_end_flush()` : 출력 버퍼를 종료하고 내용을 출력합니다. 8. `smart_cache('make', $this_cache_timeout, $this_cache_dir, $this_cache_file, $cache_content)` : 캐시 파일을 생성합니다. ### 함수 사용 예제 1. 캐시 파일이 유효한지 확인합니다. 2. 캐시 파일이 유효하지 않으면 캐시 파일을 생성합니다. ### 함수 설명 1. 캐시 파일이 유효한지 확인합니다. 2. 캐시 파일이 유효하지 않으면 캐시 파일을 생성합니다. ### 함수 사용 예제 1. 캐시 파일이 유효한지 확인합니다. 2. 캐시 파일이 유효하지 않으면 캐시 파일을 생성합니다.
나우호스팅 2025-02-22
PHP Legacy
그누보드:cut_str() 문자열 자르기
[code]/* * 그누보드 원본 코드 분석 (LGPL 라이선스 적용) * 출처: https://github.com/gnuboard/gnuboard5 * 라이선스: GNU General Public License v2.0 또는 그 이후 버전 */ function cut_str($str, $len, $suffix="…") { $arr_str = preg_split("//u", $str, -1, PREG_SPLIT_NO_EMPTY); $str_len = count($arr_str); if ($str_len >= $len) { $slice_str = array_slice($arr_str, 0, $len); $str = join("", $slice_str); return $str . ($str_len > $len ? $suffix : ''); } else { $str = join("", $arr_str); return $str; } }[/code] ### 함수 설명 `cut_str` 함수는 문자열 `$str`을 `$len` 길이까지 자른 후, `$suffix`를 붙여 반환하는 함수입니다. `$suffix`는 기본적으로 `…`로 설정되어 있습니다. ### 함수 소스코드 ```php function cut_str($str, $len, $suffix = \"…\") { // 문자열을 유니코드로 분리 $arr_str = preg_split(\"//u\", $str, -1, PREG_SPLIT_NO_EMPTY); // 문자열의 길이를 구함 $str_len = count($arr_str); // 문자열의 길이가 $len보다 크거나 같으면 if ($str_len >= $len) { // 문자열을 $len 길이까지 자름 $slice_str = array_slice($arr_str, 0, $len); // 자른 문자열을 합침 $str = join(\"\", $slice_str); // 문자열의 길이가 $len보다 크면 $suffix를 붙임 return $str . ($str_len > $len ? $suffix : ''); } else { // 문자열의 길이가 $len보다 작으면 원래 문자열을 반환 return $str; } } ``` ### 함수 작동 방식 1. `preg_split` 함수를 사용하여 문자열 `$str`을 유니코드로 분리합니다. `$str`을 `//u`로 분리하면 각 문자가 하나의 요소로 분리됩니다. 2. 문자열의 길이를 `$str_len` 변수에 저장합니다. 3. 문자열의 길이가 `$len`보다 크거나 같으면, `array_slice` 함수를 사용하여 문자열을 `$len` 길이까지 자릅니다. 4. 자른 문자열을 합치기 위해 `join` 함수를 사용합니다. 5. 문자열의 길이가 `$len`보다 크면 `$suffix`를 붙입니다. 6. 문자열의 길이가 `$len`보다 작으면 원래 문자열을 반환합니다. ### 예제 ```php $str = \"Hello, World!\"; $len = 5; echo cut_str($str, $len); // Output: \"Hello...\" echo cut_str($str, $len, \" ...\"); // Output: \"Hello ...\" echo cut_str($str, $len - 1); // Output: \"Hello\" ``` ### 참고 * `preg_split` 함수는 문자열을 분리할 때 사용할 수 있는 정규표현식을 사용합니다. * `array_slice` 함수는 배열에서 특정 범위의 요소를 추출합니다. * `join` 함수는 배열의 요소를 합치기 위해 사용합니다. * `$suffix` 변수는 문자열의 길이가 `$len`보다 크면 붙일 문자열을 지정합니다.
나우호스팅 2025-02-22
그누보드
그누보드:get_dirsize() 디렉토리 용량 계산
[code]/* * 그누보드 원본 코드 분석 (LGPL 라이선스 적용) * 출처: https://github.com/gnuboard/gnuboard5 * 라이선스: GNU General Public License v2.0 또는 그 이후 버전*/function get_dirsize($dir) { $size = 0; $d = dir($dir); while ($entry = $d->read()) { if ($entry != '.' && $entry != '..') { $size += filesize($dir.'/'.$entry); } } $d->close(); return $size; }[/code] ### GnuBoard의 디렉토리 크기 계산 함수 GnuBoard는 PHP를 기반으로 개발된 오픈 소스 CMS입니다. 이 글에서는 GnuBoard에서 사용되는 디렉토리 크기 계산 함수인 `get_dirsize` 함수를 분석합니다. #### 함수 정의 ```php function get_dirsize($dir) { $size = 0; $d = dir($dir); while ($entry = $d->read()) { if ($entry != '.' && $entry != '..') { $size += filesize($dir . '/' . $entry); } } $d->close(); return $size; } ``` #### 함수 설명 `get_dirsize` 함수는 지정된 디렉토리의 크기를 계산하는 함수입니다. 이 함수는 디렉토리 내의 모든 파일과 서브 디렉토리의 크기를 합산하여 디렉토리의 총 크기를 반환합니다. #### 함수 동작 순서 1. 함수는 디렉토리 크기 계산을 위한 변수 `$size`를 초기화합니다. 2. 디렉토리 열기: `dir($dir)` 함수를 사용하여 디렉토리를 열고 `$d` 변수에 디렉토리 핸들러를 저장합니다. 3. 디렉토리 내의 항목 읽기: `while` 루프를 사용하여 디렉토리 내의 항목을 읽습니다. `dir($dir)->read()` 함수를 사용하여 디렉토리 내의 항목을 읽고 `$entry` 변수에 항목 이름을 저장합니다. 4. 항목 이름 검사: 항목 이름이 '.' 또는 '..'이 아닌 경우 (현재 디렉토리와 부모 디렉토리는 무시합니다) 파일 크기를 계산합니다. 5. 파일 크기 계산: `filesize($dir . '/' . $entry)` 함수를 사용하여 항목 이름을 포함한 파일의 크기를 계산합니다. 6. 크기 합산: 항목 크기를 `$size` 변수에 합산합니다. 7. 디렉토리 닫기: `dir($dir)->close()` 함수를 사용하여 디렉토리 핸들러를 닫습니다. 8. 디렉토리 크기 반환: `$size` 변수에 저장된 디렉토리 크기를 반환합니다. #### 예제 ```php $dir = '/path/to/directory'; $size = get_dirsize($dir); echo \"디렉토리 크기: $size byte\"; ``` 이 예제에서는 `/path/to/directory` 디렉토리의 크기를 계산하고 크기를 byte 단위로 출력합니다. #### 참고 * `dir()` 함수: 디렉토리 핸들러를 반환합니다. * `read()` 함수: 디렉토리 내의 항목을 읽습니다. * `filesize()` 함수: 파일 크기를 계산합니다. * `close()` 함수: 디렉토리 핸들러를 닫습니다.
나우호스팅 2025-02-22
그누보드
그누보드:get_filesize () 파일용량구하기
[code]/* * 그누보드 원본 코드 분석 (LGPL 라이선스 적용) * 출처: https://github.com/gnuboard/gnuboard5 * 라이선스: GNU General Public License v2.0 또는 그 이후 버전*/function get_filesize($size) { //$size = @filesize(addslashes($file)); if ($size >= 1048576) { $size = number_format($size/1048576, 1) . "M"; } else if ($size >= 1024) { $size = number_format($size/1024, 1) . "K"; } else { $size = number_format($size, 0) . "byte"; } return $size; }[/code] ### 함수 get_filesize 설명 GNУ보드에서 사용하는 `get_filesize` 함수는 파일 크기를 사람이 읽을 수 있는 형태로 변환하는 함수입니다. #### 함수의 파라미터 - `$size` : 파일 크기 (byte 단위) #### 함수의 동작 1. 파일 크기가 1MB 이상인 경우, `M` 단위를 붙여 1자리까지의 소수점까지 표시합니다. 2. 파일 크기가 1KB 이상 1MB 미만인 경우, `K` 단위를 붙여 1자리까지의 소수점까지 표시합니다. 3. 파일 크기가 1KB 미만인 경우, `byte` 단위를 붙여 정수만 표시합니다. #### 함수의 예제 ```php // 예제 1: 1MB 파일 $size = 1048576; // 1MB echo get_filesize($size); // 1.0M // 예제 2: 1KB 파일 $size = 1024; // 1KB echo get_filesize($size); // 1.0K // 예제 3: 100byte 파일 $size = 100; // 100byte echo get_filesize($size); // 100byte ``` #### 함수의 소스코드 ```php function get_filesize($size) { // 1MB 이상인 경우 if ($size >= 1048576) { // 1자리까지의 소수점까지 표시 $size = number_format($size/1048576, 1) . \"M\"; } // 1KB 이상 1MB 미만인 경우 else if ($size >= 1024) { // 1자리까지의 소수점까지 표시 $size = number_format($size/1024, 1) . \"K\"; } // 1KB 미만인 경우 else { // 정수만 표시 $size = number_format($size, 0) . \"byte\"; } return $size; } ``` #### 함수의 사용 예제 ```php // 파일 크기를 가져오기 $size = filesize(\"example.txt\"); echo get_filesize($size); ``` 이 함수는 파일 크기를 사람이 읽을 수 있는 형태로 변환하는 데 사용할 수 있습니다.
나우호스팅 2025-02-22
그누보드
그누보드:url_auto_link() URL 자동 링크 기능
[code]/* * 그누보드 원본 코드 분석 (LGPL 라이선스 적용) * 출처: https://github.com/gnuboard/gnuboard5 * 라이선스: GNU General Public License v2.0 또는 그 이후 버전 */ function url_auto_link($str) { global $g5; global $config; // 140326 유창화님 제안코드로 수정 // http://sir.kr/pg_lecture/461 // http://sir.kr/pg_lecture/463 $attr_nofollow = (function_exists('check_html_link_nofollow') && check_html_link_nofollow('url_auto_link')) ? ' rel="nofollow"' : ''; $str = str_replace(array("<", ">", "&", """, " ", "'"), array("\t_lt_\t", "\t_gt_\t", "&", "\"", "\t_nbsp_\t", "'"), $str); //$str = preg_replace("`(?:(?:(?:href|src)\s*=\s*(?:\"|'|)){0})((http|https|ftp|telnet|news|mms)://[^\"'\s()]+)`", "\\1", $str); $str = preg_replace("/([^(href=\"?'?)|(src=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#!=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1\\2", $str); $str = preg_replace("/(^|[\"'\s(])(www\.[^\"'\s()]+)/i", "\\1\\2", $str); $str = preg_replace("/[0-9a-z_-]+@[a-z0-9._-]{4,}/i", "\\0", $str); $str = str_replace(array("\t_nbsp_\t", "\t_lt_\t", "\t_gt_\t", "'"), array(" ", "<", ">", "'"), $str); /* // 속도 향상 031011 $str = preg_replace("/</", "\t_lt_\t", $str); $str = preg_replace("/>/", "\t_gt_\t", $str); $str = preg_replace("/&/", "&", $str); $str = preg_replace("/"/", "\"", $str); $str = preg_replace("/ /", "\t_nbsp_\t", $str); $str = preg_replace("/([^(http:\/\/)]|\(|^)(www\.[^[:space:]]+)/i", "\\1\\2", $str); //$str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,]+)/i", "\\1\\2", $str); // 100825 : () 추가 // 120315 : CHARSET 에 따라 링크시 글자 잘림 현상이 있어 수정 $str = preg_replace("/([^(HREF=\"?'?)|(SRC=\"?'?)]|\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+\.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+%@;\-\|\,\(\)]+)/i", "\\1\\2", $str); // 이메일 정규표현식 수정 061004 //$str = preg_replace("/(([a-z0-9_]|\-|\.)+@([^[:space:]]*)([[:alnum:]-]))/i", "\\1", $str); $str = preg_replace("/([0-9a-z]([-_\.]?[0-9a-z])*@[0-9a-z]([-_\.]?[0-9a-z])*\.[a-z]{2,4})/i", "\\1", $str); $str = preg_replace("/\t_nbsp_\t/", " " , $str); $str = preg_replace("/\t_lt_\t/", "<", $str); $str = preg_replace("/\t_gt_\t/", ">", $str); */ return run_replace('url_auto_link', $str); }[/code] **URL 자동 링크 함수** GNUBoards는 PHP 기반의 게시판 소프트웨어로, 다양한 기능을 제공합니다. URL 자동 링크 함수는 사용자가 입력한 텍스트 내의 URL을 자동으로 링크로 변환하는 기능입니다. ### 함수 소스 코드 ```php function url_auto_link($str) { global $g5; global $config; // ... } ``` ### 함수 설명 * `global $g5;` : `$g5` 변수를 전역 변수로 선언합니다. * `global $config;` : `$config` 변수를 전역 변수로 선언합니다. * `$attr_nofollow` : `check_html_link_nofollow` 함수가 존재하고 `url_auto_link` 함수를 호출할 경우 `rel=\"nofollow\"` 속성을 추가합니다. ### 텍스트 처리 ```php $str = str_replace(array(\"<\", \">\", \"&\", \""\", \" \", \"'\"), array(\"\t_lt_\t\", \"\t_gt_\t\", \"&\", \"\\"\", \"\t_nbsp_\t\", \"'\"), $str); ``` * `str_replace` 함수를 사용하여 특수 문자를 HTML 엔티티로 변환합니다. ### URL 자동 링크 ```php $str = preg_replace(\"/([^(href=\\"?'?)|(src=\\"?'?)]|\\(|^)((http|https|ftp|telnet|news|mms):\/\/[a-zA-Z0-9\.-]+.[가-힣\xA1-\xFEa-zA-Z0-9\.:&#=_\?\/~\+\%@;\\-\\|,\\(\\)]+)/i\", \"\\1\", $str); ``` * `preg_replace` 함수를 사용하여 URL을 자동으로 링크로 변환합니다. * `i` 플래그를 사용하여 대소문자를 구분하지 않습니다. * `{$config['cf_link_target']}` : `$config` 변수의 `cf_link_target` 키 값을 사용하여 링크를 열 때의 타겟을 지정합니다. ### 이메일 자동 링크 ```php $str = preg_replace(\"/([0-9a-z]([-_\\.]?[0-9a-z])*@[0-9a-z]([-_\\.]?[0-9a-z])*.[a-z]{2,4})/i\", \"\\1\", $str); ``` * `preg_replace` 함수를 사용하여 이메일 주소를 자동으로 링크로 변환합니다. * `i` 플래그를 사용하여 대소문자를 구분하지 않습니다. ### 반환 ```php return run_replace('url_auto_link', $str); ``` * `run_replace` 함수를 호출하여 `$str` 변수의 내용을 반환합니다. ### 예제 ```php $str = \"http://example.com\"; echo url_auto_link($str); // http://example.com $str = \"example@example.com\"; echo url_auto_link($str); // example@example.com ``` URL 자동 링크 함수를 사용하여 사용자가 입력한 텍스트 내의 URL을 자동으로 링크로 변환할 수 있습니다. 이 함수는 이메일 주소도 자동으로 링크로 변환합니다.
나우호스팅 2025-02-22
그누보드
그누보드:sql_connect() DB연결
[code]/* * 그누보드 원본 코드 분석 (LGPL 라이선스 적용) * 출처: https://github.com/gnuboard/gnuboard5 * 라이선스: GNU General Public License v2.0 또는 그 이후 버전*/function sql_connect($host, $user, $pass, $db=G5_MYSQL_DB) { global $g5; if(function_exists('mysqli_connect') && G5_MYSQLI_USE) { mysqli_report(MYSQLI_REPORT_OFF); $link = @mysqli_connect($host, $user, $pass, $db) or die('MySQL Host, User, Password, DB 정보에 오류가 있습니다.'); // 연결 오류 발생 시 스크립트 종료 if (mysqli_connect_errno()) { die('Connect Error: '.mysqli_connect_error()); } } else { if (!function_exists('mysql_connect')) { die('MySQL이 설치되지 않아 mysql_connect 함수를 사용할 수 없습니다.'); } $link = mysql_connect($host, $user, $pass) or die('MySQL Host, User, Password 정보에 오류가 있습니다.'); } return $link; }[/code] **그누보드의 SQL 연결 함수** 그누보드의 SQL 연결 함수는 `function sql_connect` 이며, MySQL 연결을 위한 함수입니다. 이 함수는 MySQLi 확장 모듈을 사용하거나 MySQL 확장 모듈을 사용할 수 있습니다. ### 함수의 파라미터 * `$host`: MySQL 서버의 호스트 이름 또는 IP 주소 * `$user`: MySQL 서버의 사용자 이름 * `$pass`: MySQL 서버의 비밀번호 * `$db`: 연결할 데이터베이스 이름 (기본값은 `G5_MYSQL_DB`) ### 함수의 동작 1. **MySQLi 확장 모듈을 사용할 수 있는지 확인** * `function_exists('mysqli_connect')` 함수를 사용하여 MySQLi 확장 모듈이 존재하는지 확인합니다. * `G5_MYSQLI_USE` 변수가 `true` 인 경우 MySQLi 확장 모듈을 사용합니다. 2. **MySQLi 연결** * `mysqli_connect` 함수를 사용하여 MySQL 서버에 연결합니다. * 연결이 실패한 경우 `die` 함수를 사용하여 오류 메시지를 출력하고 스크립트를 종료합니다. * 연결이 성공한 경우 `$link` 변수에 연결 객체를 저장합니다. 3. **MySQL 확장 모듈을 사용할 수 있는지 확인** * `function_exists('mysql_connect')` 함수를 사용하여 MySQL 확장 모듈이 존재하는지 확인합니다. * MySQL 확장 모듈을 사용할 수 없는 경우 오류 메시지를 출력하고 스크립트를 종료합니다. 4. **MySQL 연결** * `mysql_connect` 함수를 사용하여 MySQL 서버에 연결합니다. * 연결이 실패한 경우 `die` 함수를 사용하여 오류 메시지를 출력하고 스크립트를 종료합니다. * 연결이 성공한 경우 `$link` 변수에 연결 객체를 저장합니다. ### 함수의 반환 값 * `$link` 변수에 연결 객체를 저장한 후 반환합니다. ### 예제 ```php // MySQLi 확장 모듈을 사용할 수 있는지 확인 if (function_exists('mysqli_connect') && G5_MYSQLI_USE) { // MySQLi 연결 $link = sql_connect('localhost', 'root', 'password', 'g5'); echo \"MySQLi 연결 성공\n\"; } else { // MySQL 확장 모듈을 사용할 수 있는지 확인 if (function_exists('mysql_connect')) { // MySQL 연결 $link = sql_connect('localhost', 'root', 'password'); echo \"MySQL 연결 성공\n\"; } else { echo \"MySQL 확장 모듈이 설치되지 않았습니다.\n\"; } } ``` 이 예제에서는 `sql_connect` 함수를 사용하여 MySQL 서버에 연결합니다. MySQLi 확장 모듈을 사용할 수 있는지 확인하고, 사용할 수 있는 경우 MySQLi 연결을 시도합니다. MySQL 확장 모듈을 사용할 수 없는 경우 오류 메시지를 출력하고 스크립트를 종료합니다.
나우호스팅 2025-02-21
그누보드
첫글인가요 ㅋㅋ
[댓글]
안녕하세요^^ 응원 감사드립니다!! 포럼도 열심히 운영해보겠습니다!
나우호스팅 2025-02-19
자유게시판
첫글인가요 ㅋㅋ
포럼 페이지가 나왓다고 해서 놀러 왔습니다!아쉽게 글이 아직 없어서 한번써보아요!!나우호스팅 화이팅입니다.
쩌리맨 2025-02-19
자유게시판
처음
1
페이지
2
페이지
3
페이지
4
페이지
5
페이지
6
페이지
7
페이지
8
페이지
열린
9
페이지
Guest
로그인
회원가입
호스팅
호스팅 정보
호스팅 토크
고민 상담
꿀팁 공유
최신 할인 소식
나우호스팅 공짜로 사용하기!
웹개발
그누보드
워드프레스
라이믹스
PHP Legacy
PHP 모던
자바스크립트
개발자 Q&A
깃허브 공유
코드 리뷰방
개발 챌린지
툴 추천소
VIP 자료실
라이브러리
IT트렌드
AI
트렌드 토론
미래 예측
기술 분석
창업&수익
내 창업 이야기
아이디어 브레인스토밍
창업 Q&A
도전일지
창업 꿀팁
실패토크
성공인터뷰
창업 툴박스
애드센스
커뮤니티
자유게시판
갤러리
유튜브
가입인사
공지사항
회원 등급 안내
추천 & 홍보 게시판