호스팅
호스팅 정보
호스팅 토크
고민 상담
꿀팁 공유
최신 할인 소식
나우호스팅 공짜로 사용하기!
웹개발
라이브러리
그누보드
워드프레스
라이믹스
PHP Legacy
PHP 모던
자바스크립트
개발자 Q&A
깃허브 공유
코드 리뷰방
개발 챌린지
툴 추천소
VIP 자료실
제작의뢰
제작의뢰 안내
제작의뢰 요청
제작의뢰 문의
제작의뢰 이용후기
포트폴리오
Technical Skills & Expertise
Solution
IT트렌드
AI
트렌드 토론
미래 예측
기술 분석
창업&수익
내 창업 이야기
아이디어 브레인스토밍
창업 Q&A
도전일지
창업 꿀팁
실패토크
성공인터뷰
창업 툴박스
애드센스
나우CPC
커뮤니티
자유게시판
갤러리
유튜브
가입인사
공지사항
회원 등급 안내
추천 & 홍보 게시판
많이 검색된 키워드
#
2026
#
2025
#
>
#
b8lv76203Cxs12Fx3cxs2x2f
#
kvehr1
검색조건
제목+내용
제목
내용
회원아이디
이름
and
or
로그인
회원가입
새글
최근 365일 이내 등록된 새글 이에요.
전체
글
댓글
그누보드: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
자유게시판
처음
이전
11
페이지
12
페이지
13
페이지
14
페이지
15
페이지
16
페이지
17
페이지
18
페이지
19
페이지
열린
20
페이지
Guest
로그인
회원가입
호스팅
호스팅 정보
호스팅 토크
고민 상담
꿀팁 공유
최신 할인 소식
나우호스팅 공짜로 사용하기!
웹개발
라이브러리
그누보드
워드프레스
라이믹스
PHP Legacy
PHP 모던
자바스크립트
개발자 Q&A
깃허브 공유
코드 리뷰방
개발 챌린지
툴 추천소
VIP 자료실
제작의뢰
제작의뢰 안내
제작의뢰 요청
제작의뢰 문의
제작의뢰 이용후기
포트폴리오
Technical Skills & Expertise
Solution
IT트렌드
AI
트렌드 토론
미래 예측
기술 분석
창업&수익
내 창업 이야기
아이디어 브레인스토밍
창업 Q&A
도전일지
창업 꿀팁
실패토크
성공인터뷰
창업 툴박스
애드센스
나우CPC
커뮤니티
자유게시판
갤러리
유튜브
가입인사
공지사항
회원 등급 안내
추천 & 홍보 게시판