팁 그누보드5 에서 제공하는 유용한 함수들
페이지 정보
본문
그누보드에서는 자체적으로 함수를 만들어 사용하는 것들이 많이 있습니다.
이들 중 유용한 것들을 모아 보았습니다.
ㅁ php 자체 제공 함수
- strip_tags("문자열")
// 문자열에서 html 태그와 php 태그를 모두 제거한다.
- mb_substr("가나다라마바사아자차카타파하",0,7); // "가나다라마바사" , 한글도 1자로 취급함
- mb_strcut("가나다라마바사아자차카타파하",0,7); // "가나", 한글은 3byte 이기때문에 두글자만 출력
// http://www.baragi.net/bbs/board.php?bo_table=dev&wr_id=8619
ㅁ 그누보드 제공 함수
- cut_str("문자열",길이)
// 문자열을 길이만큼 자른다. 중요한 것은, 한글을 반토막 내는 일이 없다. ^^
- get_text("문자열",옵션)
// 태그, 따옴표 등의 특수문자를 & lt, & gt, & #039 등으로 바꿔 준다.
// 옵션에 1을 넣으면 \n 은 <br> 로 바꾸어 주어 줄바꿈은 해 준다. ^^
- conv_subject("문자열",길이,접미)
// get_text 와 cut_str 를 합쳐 놓았다. ^^
- conv_content
함수위치 : /lib/common.lib.php
// function conv_content($content, $html, $filter=true)
사용예
글보기 view 화면에서는 이미 사용되어지고 있다.
글목록 list 화면에서 wr_content 를 보여줄때, conv_content($list[$i]['wr_content']) 처럼 사용할 수 있다.
- get_search_string($stx)
// 검색어 특수문자 제거
[code]
<?php
// 제목을 변환
function conv_subject($subject, $len, $suffix='')
{
return get_text(cut_str($subject, $len, $suffix));
}
// 내용을 변환
function conv_content($content, $html, $filter=true)
{
global $config, $board;
if ($html)
{
$source = array();
$target = array();
$source[] = "//";
$target[] = "";
if ($html == 2) { // 자동 줄바꿈
$source[] = "/\n/";
$target[] = "<br/>";
}
// 테이블 태그의 개수를 세어 테이블이 깨지지 않도록 한다.
$table_begin_count = substr_count(strtolower($content), "<table");
$table_end_count = substr_count(strtolower($content), "</table");
for ($i=$table_end_count; $i<$table_begin_count; $i++)
{
$content .= "</table>";
}
$content = preg_replace($source, $target, $content);
if($filter)
$content = html_purifier($content);
}
else // text 이면
{
// & 처리 : & 등의 코드를 정상 출력함
$content = html_symbol($content);
// 공백 처리
//$content = preg_replace("/ /", " ", $content);
$content = str_replace(" ", " ", $content);
$content = str_replace("\n ", "\n ", $content);
$content = get_text($content, 1);
$content = url_auto_link($content);
}
return $content;
}
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;
}
}
// TEXT 형식으로 변환
function get_text($str, $html=0, $restore=false)
{
$source[] = "<";
$target[] = "<";
$source[] = ">";
$target[] = ">";
$source[] = "\"";
$target[] = """;
$source[] = "'";
$target[] = "'";
if($restore)
$str = str_replace($target, $source, $str);
// 3.31
// TEXT 출력일 경우 & 등의 코드를 정상으로 출력해 주기 위함
if ($html == 0) {
$str = html_symbol($str);
}
if ($html) {
$source[] = "\n";
$target[] = "<br/>";
}
return str_replace($source, $target, $str);
}
// 3.31
// HTML SYMBOL 변환
// & · 등을 정상으로 출력
function html_symbol($str)
{
return preg_replace("/\&([a-z0-9]{1,20}|\#[0-9]{0,3});/i", "&\\1;", $str);
}
// 검색어 특수문자 제거
function get_search_string($stx)
{
$stx_pattern = array();
$stx_pattern[] = '#\.*/+#';
$stx_pattern[] = '#\\\*#';
$stx_pattern[] = '#\.{2,}#';
$stx_pattern[] = '#[/'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';
$stx_replace = array();
$stx_replace[] = '';
$stx_replace[] = '';
$stx_replace[] = '.';
$stx_replace[] = '';
$stx = preg_replace($stx_pattern, $stx_replace, $stx);
return $stx;
}
?>
[code]
이들 중 유용한 것들을 모아 보았습니다.
ㅁ php 자체 제공 함수
- strip_tags("문자열")
// 문자열에서 html 태그와 php 태그를 모두 제거한다.
- mb_substr("가나다라마바사아자차카타파하",0,7); // "가나다라마바사" , 한글도 1자로 취급함
- mb_strcut("가나다라마바사아자차카타파하",0,7); // "가나", 한글은 3byte 이기때문에 두글자만 출력
// http://www.baragi.net/bbs/board.php?bo_table=dev&wr_id=8619
ㅁ 그누보드 제공 함수
- cut_str("문자열",길이)
// 문자열을 길이만큼 자른다. 중요한 것은, 한글을 반토막 내는 일이 없다. ^^
- get_text("문자열",옵션)
// 태그, 따옴표 등의 특수문자를 & lt, & gt, & #039 등으로 바꿔 준다.
// 옵션에 1을 넣으면 \n 은 <br> 로 바꾸어 주어 줄바꿈은 해 준다. ^^
- conv_subject("문자열",길이,접미)
// get_text 와 cut_str 를 합쳐 놓았다. ^^
- conv_content
함수위치 : /lib/common.lib.php
// function conv_content($content, $html, $filter=true)
사용예
글보기 view 화면에서는 이미 사용되어지고 있다.
글목록 list 화면에서 wr_content 를 보여줄때, conv_content($list[$i]['wr_content']) 처럼 사용할 수 있다.
- get_search_string($stx)
// 검색어 특수문자 제거
[code]
<?php
// 제목을 변환
function conv_subject($subject, $len, $suffix='')
{
return get_text(cut_str($subject, $len, $suffix));
}
// 내용을 변환
function conv_content($content, $html, $filter=true)
{
global $config, $board;
if ($html)
{
$source = array();
$target = array();
$source[] = "//";
$target[] = "";
if ($html == 2) { // 자동 줄바꿈
$source[] = "/\n/";
$target[] = "<br/>";
}
// 테이블 태그의 개수를 세어 테이블이 깨지지 않도록 한다.
$table_begin_count = substr_count(strtolower($content), "<table");
$table_end_count = substr_count(strtolower($content), "</table");
for ($i=$table_end_count; $i<$table_begin_count; $i++)
{
$content .= "</table>";
}
$content = preg_replace($source, $target, $content);
if($filter)
$content = html_purifier($content);
}
else // text 이면
{
// & 처리 : & 등의 코드를 정상 출력함
$content = html_symbol($content);
// 공백 처리
//$content = preg_replace("/ /", " ", $content);
$content = str_replace(" ", " ", $content);
$content = str_replace("\n ", "\n ", $content);
$content = get_text($content, 1);
$content = url_auto_link($content);
}
return $content;
}
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;
}
}
// TEXT 형식으로 변환
function get_text($str, $html=0, $restore=false)
{
$source[] = "<";
$target[] = "<";
$source[] = ">";
$target[] = ">";
$source[] = "\"";
$target[] = """;
$source[] = "'";
$target[] = "'";
if($restore)
$str = str_replace($target, $source, $str);
// 3.31
// TEXT 출력일 경우 & 등의 코드를 정상으로 출력해 주기 위함
if ($html == 0) {
$str = html_symbol($str);
}
if ($html) {
$source[] = "\n";
$target[] = "<br/>";
}
return str_replace($source, $target, $str);
}
// 3.31
// HTML SYMBOL 변환
// & · 등을 정상으로 출력
function html_symbol($str)
{
return preg_replace("/\&([a-z0-9]{1,20}|\#[0-9]{0,3});/i", "&\\1;", $str);
}
// 검색어 특수문자 제거
function get_search_string($stx)
{
$stx_pattern = array();
$stx_pattern[] = '#\.*/+#';
$stx_pattern[] = '#\\\*#';
$stx_pattern[] = '#\.{2,}#';
$stx_pattern[] = '#[/'\"%=*\#\(\)\|\+\&\!\$~\{\}\[\]`;:\?\^\,]+#';
$stx_replace = array();
$stx_replace[] = '';
$stx_replace[] = '';
$stx_replace[] = '.';
$stx_replace[] = '';
$stx = preg_replace($stx_pattern, $stx_replace, $stx);
return $stx;
}
?>
[code]
추천0
댓글목록
등록된 댓글이 없습니다.