새글

    최근 365일 이내 등록된 새글 이에요.
  • [code]jquery .addClass()[/code] **jQuery의 `.addClass()` 메서드** jQuery는 자바스크립트 라이브러리 중 하나로, 웹 개발을 쉽게 하기 위해 설계되었습니다. `.addClass()` 메서드는 HTML 요소에 클래스를 추가하는 데 사용됩니다. ### `.addClass()` 메서드의 사용법 `.addClass()` 메서드는 다음과 같은 형식으로 사용됩니다. ```javascript $(selector).addClass(className); ``` - `$(selector)` : 선택자(selector)로 HTML 요소를 선택합니다. - `addClass(className)` : 선택한 요소에 클래스를 추가합니다. ### 예제 ```html <!DOCTYPE html> <html> <head> <title>addClass 예제</title> <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js\"></script> </head> <body> <button id=\"btn\">클릭</button> <div class=\"container\">클래스가 없는 요소</div> <script> $(document).ready(function() { $(\"#btn\").click(function() { $(\".container\").addClass(\"active\"); }); }); </script> </body> </html> ``` 이 예제에서는 버튼을 클릭하면 `.container` 요소에 `active` 클래스가 추가됩니다. ### 소스 코드 분석 `.addClass()` 메서드는 jQuery의 `core.js` 파일에 정의되어 있습니다. 다음은 `.addClass()` 메서드의 소스 코드 분석입니다. ```javascript // jQuery의 core.js 파일 // ... // .addClass() 메서드 addClass: function( className ) { var self = this, className = jQuery.trim( className || \"\" ), i = 0, l = self.length, parts, cur; if ( self.length > 1 ) { while ( i < l ) { cur = self[i]; if ( cur.nodeType === 1 && !cur.className ) { cur.className = className; } else { parts = className.split(/\s+/); cur.className = jQuery.trim( cur.className + \" \" + parts.join(\" \") ).replace( /\s+/g, \" \" ); } i++; } } else { if ( self[0].nodeType === 1 && !self[0].className ) { self[0].className = className; } else { parts = className.split(/\s+/); self[0].className = jQuery.trim( self[0].className + \" \" + parts.join(\" \") ).replace( /\s+/g, \" \" ); } } return this; }, // ... ``` `.addClass()` 메서드는 다음과 같은 과정을 거칩니다. 1. 선택한 요소의 길이를 확인합니다. 2. 선택한 요소의 클래스를 확인합니다. 만약 클래스가 없다면, 클래스를 추가합니다. 3. 클래스를 추가합니다. 만약 클래스가 이미 존재한다면, 클래스를 합칩니다. 이러한 과정을 거쳐 `.addClass()` 메서드는 선택한 요소에 클래스를 추가합니다.
    나우호스팅 2025-02-22 자바스크립트
  • [code]jquery .prepend()[/code] ### jQuery prepend() 메서드 jQuery prepend() 메서드는 HTML 요소의 내용을 지정된 위치에 추가합니다. prepend() 메서드는 원래 요소의 내용을 제거하지 않고, 새로운 내용을 추가합니다. ### prepend() 메서드의 사용법 prepend() 메서드는 다음과 같은 형식으로 사용할 수 있습니다. ```javascript $(selector).prepend(content); ``` - `selector` : prepend() 메서드를 적용할 HTML 요소를 선택하는 선택자입니다. - `content` : prepend() 메서드를 적용할 HTML 요소의 내용입니다. ### 예제 다음 예제에서는 prepend() 메서드를 사용하여 HTML 요소의 내용을 추가합니다. ```html <!DOCTYPE html> <html> <head> <title>prepend() 메서드 예제</title> <script src=\"https://ajax.googleapis.com/ajax/libs/jquery/3.6.0/jquery.min.js\"></script> </head> <body> <h2>prepend() 메서드 예제</h2> <div id=\"container\"> <p>원래 내용</p> </div> <button id=\"prepend-btn\">prepend() 메서드 적용</button> <script> $(document).ready(function() { $(\"#prepend-btn\").click(function() { $(\"#container\").prepend(\"<p>새로운 내용</p>\"); }); }); </script> </body> </html> ``` 이 예제에서는 prepend() 메서드를 사용하여 `#container` 요소의 내용을 추가합니다. `#prepend-btn` 버튼을 클릭하면 새로운 내용이 추가됩니다. ### prepend() 메서드의 동작 prepend() 메서드는 원래 요소의 내용을 제거하지 않고, 새로운 내용을 추가합니다. prepend() 메서드는 다음과 같은 동작을 합니다. 1. 원래 요소의 내용을 제거하지 않습니다. 2. 새로운 내용을 추가합니다. 3. 새로운 내용이 원래 요소의 내용 위에 추가됩니다. ### prepend() 메서드의 사용 사례 prepend() 메서드는 다음과 같은 사용 사례가 있습니다. 1. HTML 요소의 내용을 추가할 때 사용합니다. 2. 원래 요소의 내용을 제거하지 않고, 새로운 내용을 추가할 때 사용합니다. 3. HTML 요소의 내용을 재정렬할 때 사용합니다. ### prepend() 메서드의 장점 prepend() 메서드는 다음과 같은 장점이 있습니다. 1. 원래 요소의 내용을 제거하지 않습니다. 2. 새로운 내용을 추가할 때 사용하기 쉽습니다. 3. HTML 요소의 내용을 재정렬할 때 사용하기 쉽습니다. ### prepend() 메서드의 단점 prepend() 메서드는 다음과 같은 단점이 있습니다. 1. 원래 요소의 내용이 제거되지 않으므로, 새로운 내용이 원래 내용 위에 추가됩니다. 2. prepend() 메서드를 사용할 때, HTML 요소의 구조가 복잡할 수 있습니다. ### 결론 prepend() 메서드는 HTML 요소의 내용을 추가할 때 사용할 수 있는 유용한 메서드입니다. prepend() 메서드는 원래 요소의 내용을 제거하지 않고, 새로운 내용을 추가합니다. prepend() 메서드는 다음과 같은 장점을 가지고 있습니다. prepend() 메서드는 다음과 같은 단점을 가지고 있습니다. prepend() 메서드는 HTML 요소의 내용을 추가할 때 사용할 수 있는 유용한 메서드입니다.
    나우호스팅 2025-02-22 자바스크립트
  • [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 자바스크립트
  • [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 자바스크립트
  • [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 자바스크립트
  • [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
  • [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
  • [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 그누보드
  • [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 그누보드
  • [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 그누보드
  • [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 그누보드
  • [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 자유게시판