새글

    최근 365일 이내 등록된 새글 이에요.
  • [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 자유게시판