PHP   abs()   절대값을 리턴한다
PHP   acos()   라디안으로 주어진 값을 아크코사인값을 리턴한다
PHP   addcslashes()   문자열앞에 역슬레쉬를 추가한다
PHP   addslashes()   ‘,”,\ 앞에 역슬래쉬를 추가한다
PHP   array()   배열을 만든다
PHP   array_count_values()   배열안의 매게변수와 동일한 값이 몇번들어있는지 리턴한다
PHP   array_flip()   배열의 키와값을 바꾼다
PHP   array_keys()   배열의모든키를 반환한다.
PHP   array_merge()   두개이상의 배열을 합칩니다.
PHP   array_pad()   새로운요소를 추가합니다.
PHP   array_pop()   배열의 마지막요소를 삭제하고 리턴합니다.
PHP   array_push()   배열의 마지막에 하나이상의 요소를 추가합니다.
PHP   array_reverse()   배열을 역순으로 뒤바꿉니다.
PHP   array_shift()   배열의 처음요소를 없애고 리턴한다.
PHP   array_splice()   배열의 일부분을 대체한다.
PHP   array_unshift()   배열맨앞에 하나이상의 요소를 추가합니다.
PHP   array_values()   키값을제외하고 값을 배열로 반환한다.
PHP   array_walk()   배열의 모든요소에 함수를 적용한다.
PHP   arsort()   키와값의 관계를 유지하고 값의역순으로 정렬한다.
PHP   asin()   라디안값을 아크사인값으로 리턴한다.
PHP   asort()   키와값의 관계를 유지하면서 값을 정렬한다.
PHP   atan()   라디안값을 아크탄젠트값으로 리턴한다.
PHP   atan2()   y/x 의 아크탄젠트값을 리턴한다.
PHP   base64_decode()   MINE base64로 인코딩된 것을 디코딩한다.
PHP   base64_encode()   MINE base64로 인코딩한다.
PHP   basename()   파일경로에서 파일이름만 반환한다.
PHP   base_convert()   진법을 변환한다.
PHP   bin2hex()   2진수를 16진수로 반환한다.
PHP   bindec()   2진수인 인자를 10진수로 리턴한다.
PHP   ceil()   메게변수의 올림값을 리턴한다

PHP   checkdnsrr()   인터넷 호스트 네임이나 IP 어드레스에 대응되는 DNS 레코드를 체크함
PHP   chgrp()   파일그룹을 변경한다.
PHP   chmod()   파일모드를 변경한다.
PHP   chop()   뒤쪽공백을 제거한다.
PHP   chown()   파일소유자를 변환한다.
PHP   chr()   아스키에 해당하는 문자를 리턴한다.
PHP   chunk_split()   문자열을 작은 문자열로 분할한다.
PHP   clearstatcache()   파일 상태캐시를 삭제한다.
PHP   compact()   변수의 이름과 값을 가지는 배열을 만든다.
PHP   convert_cyr_string()   키릴문자셋을 다른문자로 변환한다.
PHP   copy()   파일을 복사한다.
PHP   cos()   코사인값을 리턴한다.
PHP   count()   변수의 개수를 리턴합니다.
PHP   crc32()   문자열로된 CRC32 다항식을 계산한다.
PHP   crypt()   문자열을 DES 암호화방법으로 암호화한다.

PHP   current()   포인터가 가르키는 값을 리턴합니다
PHP   date()   주어진 함수의 타임스탬프를 지정한 포맷으로 변환한다
PHP   decbin()   메게변수 10진수를 2진수로 리턴한다
PHP   dechex()   16진수로 리턴한다
PHP   decoct()   8진수로 리턴한다
PHP   deg2rad()   각도를 동일한 라디안값으로 구한다
PHP   dirname()   주어진 경로의 디렉토리 목록을 반환한다.
PHP   diskfreespace()   디렉토리의 사용가능한 용량을 리턴한다
PHP   doubleval!!()   변수의 실수(double)값을 구한다
PHP   each()   포인터가 가르키는 키와값을 리턴한다
PHP   echo()   문자열을 출력한다.
PHP   empty()   변수의 설정여부를 리턴한다.
PHP   end()   포인터를 마지막으로 옮긴다.
PHP   exp()   자연대수 2의 arg승을 구한다
PHP   explode()   문자열은 분리해서 배열로반 환한다

PHP   extract()   배열에서 키와값을 변수와값으로 추출한다
PHP   fclose()   열려진 파일을 닫는다.
PHP   feof()   파일포인터가 끝에 있는지 검사한다
PHP   fgetc()   파일포인터의 한문자를 반환한다.
PHP   fgetcsv()   한줄을 읽고 CSV에 맞게 변환한다.
PHP   fgets()   지정된 파일에서 한 줄을 읽어온다
PHP   floor()   내림값을 리턴한다
PHP   getimagesize()   gif,jpg,png의 이미지크기를 반환한다
PHP   getrandmax()   rand()함수에의한 리턴값의 최대를 리턴한다
PHP   gettype()   인자로 사용된 변수의 타입을 리턴한다
PHP   get_html_translation_table()   내부적으로 사용된 변환테이블을 반환한다
PHP   get_meta_tags()   파일에서 메타테그를 추출해배열로 반환한다
PHP   hexdec()   16진수를 10진수로 리턴한다
PHP   htmlentities()   해당되는 모든문자를 HTML엔티티형태로 변환한다
PHP   htmlspecialchars()   특수문자를 HTML엔티티형태로 바꾼다

PHP   imagearc()   타원을 그린다.
PHP   imagechar()   수평으로 한문자를 그린다
PHP   imagecolorallocate()   이미지에 색을 할당한다
PHP   imagecolorat()   이미지 픽셀의 색을 리턴한다
PHP   imagecolorclosest()   비슷한 색을 리턴한다
PHP   imagecolorexact()   특정색과 같은색을 리턴한다
PHP   imagecolorresolve()   같은,대체할수있는 가까운색을 리턴한다
PHP   imagecolorset()   index을 지정한 rgb로 대체한다
PHP   imagecolorsforindex()   index의 rgb값을 배열로 리턴한다
PHP   imagecolorstotal()   색의 갯수를 리턴한다
PHP   imagecolortransparent()   색을 투명하게 바꾼다
PHP   imagecopyresized()   이미지의 부분을 복사하고 크기조정을 한다
PHP   imagecreate()   새로운 이미지를 생성한다
PHP   imagecreatefromgif()   파일로부터 이미지 id를 리턴한다
PHP   imagedashedline()   점선을 그린다.

PHP   imagedestroy()   이미지id를 없앤다
PHP   imagefill()   색으로 채운다
PHP   imagefilledpolygon()   다각형을 그린다.
PHP   imagefilledrectangle()   직사각형을 그린다
PHP   imagefilltoborder()   col색으로채운다
PHP   imagefontheight()   폰트의 높이를 리턴한다.
PHP   imagefontwidth()   폰트의 넓이를 리턴한다.
PHP   imagegif()   브라우저나 파일로 gif형식으로 출력한다.
PHP   imageinterlace()   인터레스의 기능을 on,off한다.
PHP   imageline()   선을 그립니다.
PHP   imageloadfont()   새로운 폰트를 불러온다.
PHP   imagepolygon()   다각형을 그린다
PHP   imagepsbbox()   포스트스크립타입1의 글꼴을 사용해 텍스트경계를지정한다
PHP   imagepsencodefont()   글꼴의 문자 인코딩 벡터를 변경한다
PHP   imagepsfreefont()   포스트스크립타입1폰트를 위해 사용된 메모리를해제한다

PHP   imagepsloadfont()   파일로부터 포스트스크립타입1글꼴을 로드한다
PHP   imagepstext()   이미지에 포스트스크립타입1글꼴로 문자열을 그린다
PHP   imagerectangle()   사각형을 그린다
PHP   imagesetpixel()   지정된 좌표에 픽셀 한개를 출력한다
PHP   imagestring()   문자열을 가로로 그린다
PHP   imagestringup()   문자열을 세로로 그린다
PHP   imagesx()   이미지의 가로크기를 구한다
PHP   imagesy()   이미지의 세로크기를 구한다
PHP   ImageTTFBBox()   트루타입글꼴의 경계 영역을 계산해 반환한다
PHP   ImageTTFText()   트루타입글꼴로 문자열을 출력한다
PHP   implode()   지정된문자를포함해 배열을 하나의 문자열로 연결한다
PHP   intval()   변수가 가지고 있는 정수값을 리턴한다
PHP   in_array()   배열에서 needle을 찾아서 있으면 true, 없으면 false를 리턴한다
PHP   isset()   변수의 설정 여부 확인
PHP   is_array()   배열여부 확인

PHP   is_double ()   인자의 타입이 Double형배열인지 확인
PHP   is_float()   인자의 타입이 float형인지 확인
PHP   is_int()   인자의 타입이 int형인지 확인
PHP   is_integer ()   인자의 타입이 integer형인지 확인
PHP   is_long()   인자의 타입이 long형인지 확인
PHP   is_object()   인자가 객체인지 확인
PHP   is_real()   인자의 타입이 double형인지 확인
PHP   is_string()   인자로 사용된 변수가 문자열인지 확인
PHP   join()   impolde()함수와 동일
PHP   key()   포인터가 가르키는 위치의 키값을 리턴한다
PHP   krsort()   배열을 키값의 역순으로 정렬합니다.
PHP   ksort()   배열의키값을기준으로 정렬합니다.
PHP   list()   변수를 배열처럼 사용한다
PHP   log()   자연로그값을 리턴한다
PHP   log10()   상용로그값을 리턴한다

PHP   ltrim()   문자열의 앞부분에 있는 공백 문자를 제거한다.
PHP   max()   인자들중 가장큰 값을 리턴한다
PHP   md5()   문자열의 MD5 해시를 계산한다
PHP   metaphone()   문자열의 메타폰키를 계산한다
PHP   min()   인자들중 가장작은값을 리턴한다
PHP   mktime()   주어진 날짜를 타임스탬프로 변환한다.
PHP   mssql_bind   저장프로시져 또는 원격저장프로시져의 인자를 추가한다
PHP   mssql_close   디비연결을 닫는다
PHP   mssql_connect   int mssql_connect ( [string servername [, string username [, string password]]])
PHP   mssql_data_seek   결과에서 row_number 로 열을 이동한다.
PHP   mssql_execute   프로시져를 실행한다
PHP   mssql_fetch_array   mysql_fetch_array와 동일
PHP   mssql_fetch_assoc   Returns an associative array of the current row in the result set specified by result_id
PHP   mssql_fetch_batch   Returns the next batch of records
PHP   mssql_fetch_field   Get field information
The properties of the object are:
name – column name. if the column is a result of a function, this property is set to computed#N, where #N is a serial number.

column_source – the table from which the column was taken

max_length – maximum length of the column

numeric – 1 if the column is numeric

type – the column type.
PHP   mssql_fetch_object   Fetch row as object
이 함수가 반환하는 필드 이름은 대소문자를 구별합니다.
PHP   mssql_fetch_row   Get row as enumerated array
Subsequent call to mssql_fetch_row() would return the next row in the result set, or FALSE if there are no more rows.
PHP   mssql_field_length
PHP   mssql_field_name   Get the name of a field
PHP   mssql_field_seek   Seeks to the specified field offset
Seeks to the specified field offset. If the next call to mssql_fetch_field() won’t include a field offset, this field would be returned.
PHP   mssql_field_type   Gets the type of a field
PHP   mssql_free_result   Free result memory
mssql_free_result() only needs to be called if you are worried about using too much memory while your script is running. All result memory will automatically be freed when the script ends. You may call mssql_free_result() with the result identifier as an argument and the associated result memory will be freed.
PHP   mssql_free_statement   Free statement memory
mssql_free_statement() only needs to be called if you are worried about using too much memory while your script is running. All statement memory will automatically be freed when the script ends. You may call mssql_free_statement() with the statement identifier as an argument and the associated statement memory will be freed.
PHP   mssql_get_last_message   Returns the last message from the server
PHP   mssql_guid_string   Converts a 16 byte binary GUID to a string
PHP   mssql_init   Initializes a stored procedure or a remote stored procedure
PHP   mssql_min_error_severity   Sets the lower error severity
PHP   mssql_min_message_severity   Sets the lower message severity
PHP   mssql_next_result   Move the internal result pointer to the next result
PHP   mssql_num_fields   Gets the number of fields in result
PHP   mssql_num_rows   Gets the number of rows in result
PHP   mssql_pconnect   Returns: A positive MS SQL persistent link identifier on success, or FALSE on error.
This type of links is therefore called ‘persistent’.
PHP   mssql_query   Send MS SQL query
PHP   mssql_result   returns the contents of one cell from a MS SQL result set. The field argument can be the field’s offset, the field’s name or the field’s table dot field’s name (tablename.fieldname). If the column name has been aliased (‘select foo as bar from…’), it uses the alias instead of the column name.
When working on large result sets, you should consider using one of the functions that fetch an entire row (specified below). As these functions return the contents of multiple cells in one function call, they’re MUCH quicker than mssql_result(). Also, note that specifying a numeric offset for the field argument is much quicker than specifying a fieldname or tablename.fieldname argument.
PHP   mssql_rows_affected   Returns the number of records affected by the query
PHP   mssql_select_db   Select MS SQL database
PHP   mt_getrandmax()   mt_rand()에 의해 리턴될 수 있는 최대값을 리턴한다
PHP   mt_rand()   난수를 리턴한다
PHP   mt_srand()   난수발생기를 초기화한다
PHP   mysql_affected_rows()   최근 궈리작업으로 처리된 행의 수를 구한다.
PHP   mysql_change_user()   사용자를 변경한다.
PHP   mysql_close()   연결을 닫는다.
PHP   mysql_connect()   서버에 접속한다.
PHP   mysql_create_db   데이터베이스를 생성한다.
PHP   mysql_data_seek()   내부적인 결과 포인트를 이동한다.

PHP   mysql_db_query()   질의를 전송한다.
PHP   mysql_drop_db()   데이터베이스를 삭제한다.
PHP   mysql_fetch_array()   쿼리 결과배열은 한줄씩 리턴한다.
PHP   mysql_fetch_field()   결과로부터 열 정보를 얻어서 객체로 반환한다.
PHP   mysql_fetch_lengths()   결과로부터 가 출력의 길이를 반환한다.
PHP   mysql_fetch_object()   행의 결과를 객체로 반환한다.
PHP   mysql_fetch_row()   쿼리결과를 한행씩 스칼라 배열로 리턴한다.
PHP   mysql_field_flags()   특정 필드의 flag 들을 구한다
PHP   mysql_field_len()   특정 필드의 길이를 리턴한다.
PHP   mysql_field_name()   결과로부터 특정 필드 이름을 반환한다.
PHP   mysql_field_seek()   특정 필드의 오프셋으로 위치를 이동한다.
PHP   mysql_field_table()   특정 필드의 table의 이름을 리턴한다
PHP   mysql_field_type()   특정 필드의 type을 리턴한다
PHP   mysql_free_result()   인자값을 메모리에서 지웁니다.
PHP   mysql_insert_id()   삽입에 의해 생성된 인덱스넘버를 리턴한다

PHP   mysql_list_dbs()   DB 리스트를 구한다.
PHP   mysql_list_fields ()   필드의 리스트를 구한다.
PHP   mysql_list_tables()   DB내의 테이블 리스트의 포인터를 리턴한다.
PHP   mysql_num_fields()   쿼리결과내의 필두수를 리턴한다.
PHP   mysql_num_rows()   질의결과의 행수를 리턴한다.
PHP   mysql_pconnect()   디비서버에 지속적인 연결을한다.
PHP   mysql_query()   질의 보낸다.
PHP   mysql_result()   결과에서 데이터를 구한다.
PHP   mysql_select_db()   사용할 디비를 선택한다.
PHP   mysql_tablename()   테이블명을 리턴한다.
PHP   next()   배열의 다음포인터로 이동하여 값을 리턴한다
PHP   nl2br()   개행문자를 <BR>태그로 변환한다.
PHP   number_format()   수의 주어진 일정한 형식으로 리턴한다
PHP   octdec()   8진수를 10진수로 리턴한다
PHP   ord()   문자열에 있는 첫번째 문자의 ASCII 코드 값을 변환한다.

PHP   parse_str()   문자열을 변수로 해석한다
PHP   parse_url()   URL을 해석해서 각 구성요소를 반환한다.
PHP   pi()   파이값을 구한다
PHP   pos()   배열릐 포인터가 가르키는 값을 리턴한다
PHP   pow()   base의 exp승을 리턴한다
PHP   prev()   포인터를 앞으로 이동한후 값을 리턴한다
PHP   print()   문자열을 출력
PHP   printf()   지정된 형식에 맞게 문자열을 출력한다.
PHP   quoted_printable_decode()   문자열을 8비트 문자열로 변환한다.
PHP   quotemeta()   문자열에 .\\+*?[^]($)등의 메타문자앞에\를추가한다
PHP   rand()   난수를 발생한다
PHP   range()   low부터 high까지의 정수들의 배열을 리턴한다
PHP   rawurldecode()   URL로 인코딩된문자열을 디코딩한다
PHP   rawurlencode()   RFC1738에 따라서 URL을 인코딩한다.
PHP   reset()   배열의 포인터를 맨처음으로 이동하여 값을 리턴한다

PHP   round()   반올림값을 리턴한다
PHP   rsort()   배열의 값을 기준으로 역순정렬합니다
PHP   rtrim()   문자열 끝에 있는 공백 문자, 개행문자를 제거한다.
PHP   session_decode()   암호화된 문자열을 세션데이터로 해석한다
PHP   session_destroy()   생성된 모든 세션을 파괴한다
PHP   session_encode()   세션 데이터를 문자열로 인코딩한다
PHP   session_id()   세션 아이디를 구하거나 변경한다.
PHP   session_is_registered()   인자가 세션에 등록되었는지 검사
PHP   session_module_name()   현재 세션요소를 구하거나 변경한다
PHP   session_name()   세션의 이름을 설정한다.
PHP   session_register()   현재 세션에 변수들을 등록한다.
PHP   session_save_path()   현재 세션의 저장경로를 구하거나 변경한다
PHP   session_start()   Session을 시작
PHP   session_unregister()   등록된 변수를 제거한다.
PHP   setlocale()   지역정보를 저장한다.

PHP   settype()   변수 타입 설정
PHP   shuffle()   배열을 랜덤하게 섞는다
PHP   similar_text()   두 문자열사이의 유사성을 계산한다
PHP   sin()   사인값을 리턴한다
PHP   sizeof()   배열요소의 갯수를 반환한다.
PHP   sort()   배열을 값을기준으로 순서대로 정렬합니다.
PHP   soundex()   문자열의 soundex키를 계산한다
PHP   sprintf()   지정된 출력형식문자열을 반환한다.
PHP   sqrt()   제곱근을 리턴한다
PHP   srand()   난수발생기를 초기화한다
PHP   strcasecmp()   대소문자를 구분하지 않고 문자열을 비교한다
PHP   strchr()   문자열에서 지정한 문자가 처음위치한부분부터반환한다.
PHP   strcmp()   대소문자를 구분해서 두 문자열을 비교한다.
PHP   strcspn()   마스크가 맞지 않는 초기 세크먼트의 길이를 반환한다
PHP   stripcslashes()   addcslashes()로 쿼트된 문자열을 언쿼트한다

PHP   stripslashes()   addslashes()로 쿼트된 문자열을 언쿼트한다
PHP   strip_tags()   문자열로 부터 HTML,PHP 태그를 제거한다.
PHP   stristr()   대소문자를구별않고 needle과 일치한부분부터리턴한다
PHP   strlen()   문자열의 길이를 반환한다.
PHP   strpos()   문자열에서 특정문자열이 있는 처음위치를 반환한다
PHP   strrchr()   지정한 문자열이 있는 마지막의 위치부터 반환한다
PHP   strrev()   문자열을 뒤집는다.
PHP   strrpos()   needle이 마지막으로 나타나는위치를 반환한다.
PHP   strspn()   마스크에 일치하는 초기 세그먼트의 길이를 찾는다.
PHP   strstr()   대소문자를구분하여 needle와 일치하는부분부터 반환한다.
PHP   strtok()   문자열을 토큰화한다.
PHP   strtolower()   문자열을 소문자로 변환한다.
PHP   strtoupper()   영문자를 대문자로 변환한다.
PHP   strtr()   특정문자를 번역한다.
PHP   strval()   값을 문자열로 변환

PHP   str_repeat()   문자열을 지정한 횟수만큼 반복한다.
PHP   str_replace()   subject에서 search를 replace로 대체한다.
PHP   substr()   문자열의 일부분을 짤라서 반환한다.
PHP   substr_replace()   문자열 일부만 지정된문자로 치환한다.
PHP   tan()   탄젠트값을 리턴한다
PHP   trim()   문자열의 앞뒤의 공백문자를 제거한다.
PHP   uasort()   키,값을 유지하고 지정함수를 사용해 정렬합니다.
PHP   ucfirst()   첫글자가 알파벳이면 첫문자만 대문자로 변환한다
PHP   ucwords()   문자열의 각 단어의 첫글자를 대문자로 바꾼다.
PHP   uksort()   키,값을 유지하고 지정함수를 이용 키값에 따라 정렬한다.
PHP   unset()   변수의 설정을 해제
PHP   urldecode()   인코딩된 URL문자열을 디코딩한다.
PHP   urlencode()   문자열을 URL 인코딩한다.
PHP   usort()   함수를 배열값에 적용하여 정렬합니다

'php > Tip&Tech' 카테고리의 다른 글

php db connection class 범용  (0) 2011.09.27
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP DBConnection 클래스  (0) 2011.07.28
PHP 페이징 기법  (0) 2011.07.27

<?
/*********************************************************
* 설명 : 범용적으로 db를 컨트롤 할수 있는 class
* 홈페이지 : http://www.mjava.net
* 만든사람 : 명랑폐인™ merong@hanmir.com (MSN id 동일)
* 저작권 : 없으니까 맘대로 쓰세요.
********************************************************/

/* common_config.php 파일은
{dbhost, dbuser, dbpass, dbname} 에 대한 정보를 가진 설정파일이다.
다른 파일명을 include할때는 해당파일에 네 변수값을 설정해 놓도록 한다.
*/
$include "common_config.php";
class Mysql_DB {
var $db; //db conncion
var $result; //result set
var $dbhost, $dbuser, $dbpass, $dbname;

/* Mysql_DB 의 생성자
- mysql_db() // config 파일의 변수값을 세팅
- mysql_db(db_name); //db_name 만 따로 설정하여 연결
- mysql_db(host, userid, userpass, db_name) // caller에서 직접 값설정
*/

function Mysql_DB () {
global $dbhost, $dbuser, $dbpass, $dbname;
$this->Mysql_DB($dbhost, $dbuser, $dbpass, $dbname);
}

function Mysql_DB($select_dbname) {
global $dbhost, $dbuser, $dbpass;
$this->Mysql_DB($dbhost, $dbuser, $dbpass, $select_dbname);
}

function Mysql_DB($dbhost, $dbuser, $dbpass, $dbname) {
$this->dbhost = $dbhost;
$this->dbuser = $dbuser;
$this->dbpass = $dbpass;
$this->dbname = $dbname;
$this->connect_db();
}

/*
connect_db() 와 select_db()에서 파라메타에 의한 호출이 없다.
생성자 이외에 방법으로 db를 변경하지 못하도록 한다.
*/

function connect_db() {
$this->db = mysql_connect($this->dbhost, $this->dbuser, $this->dbpass);
if(is_resource($this->db) == false) {
die("$dbhost 에 연결할수 없습니다.");
}
$this->select_db();
}

function select_db() {
mysql_select_db($this->dbname, $this->db) or die("$dbname 을 선택할수 없습니다.");
}

/*
db에서 select 쿼리를 실행하는 함수
*/
function execute_query($query) {
$this->result = mysql_query($query, $this->db);
}

/*
db 에서 insert, delect, update 쿼리를 실행하는 함수
return : 적용된 rows 수, 에러가 있다면, -1를 반환
*/
function execute_update($query) {
$result = mysql_query($query, $this->db); //
if(is_resource($result)) return mysql_affected_rows($result);
return -1;
}

/*
select query된 result set을 반환한다.
꼭 필요한 경우 사용하고 보통은 next_fetch()를 사용하도록 한다.
*/
function get_result() {
return $this->result;
}

/*
execute_count() 함수는 select count(*) 등과 같은 단순 select 쿼리를
fetch 하여 결과값을 반환하는 함수이다.
return : 정상정인 값은 0 이상이며, select 된 row가 없으면, -1을 반환
*/
function execute_simple_query($query) {
$result = mysql_query($query, $this->db); //클래스 변수는 사용하지 않는다.
if(!is_resource($result)) return -1;
return mysql_result($result, 0, 0);
}

/*
select 쿼리된 개수를 반환한다.
return : 정상적 쿼리가 아니면, -1 을 return
*/
function get_num_rows() {
if(is_resource($this->result)) return mysql_num_rows($this->result);
return -1;
}

/*
$result를 하나 fetch 한다.
db간의 호환성을 높이기 위해 함수를 따로 만든다.
*/
function next_fetch() {
return mysql_fetch_assoc($this->result);
}

/*
db 와 연결된 자원을 반납한다.
*/
function destory() {
if(is_resource($this->result)) mysql_free_result($this->result);
mysql_close($this->db);
}

function close() {
$this->destroy();
}


?>

'php > Tip&Tech' 카테고리의 다른 글

php 함수목록  (0) 2013.06.02
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP DBConnection 클래스  (0) 2011.07.28
PHP 페이징 기법  (0) 2011.07.27

주의사항: 본 팁 은 선의에 입각하여 제공합니다. 아래의 작업중 발생하는 어떠한 책임도 지지 않습니다.

#개요 :
홈페이지 제작시 php 파일인데 확장자를 html 혹 htm 으로 사용할 필요성이 있을때....

#방법 :
1) /etc/httpd/conf/httpd.conf  혹 /usr/local/httpd/conf/httpd.conf 파일을 열어서 AddType application/x-tar .tgz 부분을 찾아서 아래처럼 추가변경하여 줍니다.

AddType application/x-tar .tgz
AddType application/x-httpd-php .html
AddType application/x-httpd-php .htm

2) 다음에 아파치를 재시작하여 줍니다.
[root@mbkang ~]# service httpd restart
Stopping httpd:                                            [  OK  ]
Starting httpd:                                            [  OK  ]
[root@mbkang ~]#

이제는  php 라도 html 혹 htm 확장자로 사용이 가능합니다.

웹접근성홈페이지제작은 스마트홈페이지로

'php > Tip&Tech' 카테고리의 다른 글

php 함수목록  (0) 2013.06.02
php db connection class 범용  (0) 2011.09.27
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP DBConnection 클래스  (0) 2011.07.28
PHP 페이징 기법  (0) 2011.07.27
<?
$file_name = 'test.html';
if(strstr($HTTP_USER_AGENT, "MSIE 5.5")) {
header("Content-Type: doesn/matter");
header("Content-Disposition: filename=$file_name");
header("Content-Transfer-Encoding: binary");
header("Pragma: no-cache");
header("Expires: 0");
}
else {
Header("Content-type: file/unknown");
Header("Content-Disposition: attachment; filename=$file_name");
Header("Content-Description: PHP3 Generated Data");
header("Pragma: no-cache");
header("Expires: 0");
}
?>

'php > Tip&Tech' 카테고리의 다른 글

php 함수목록  (0) 2013.06.02
php db connection class 범용  (0) 2011.09.27
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
PHP DBConnection 클래스  (0) 2011.07.28
PHP 페이징 기법  (0) 2011.07.27
출처 : http://web3.kr/40034737395
주석이 없다.. 나만 쓸려고 만들어 놓은거라서...
관련되서 공부하고자 하는 분들이 있으면 참고하시라...

#DBConn.Class.php
<?
    
/***************************************************************
    프로그램명    : DBConn Class
    작성자        : 윤영식 (2006-02-17 오후 5:07)
    설명            : DataBase Connection Class (Oracle, MySQL)
    ***************************************************************/

    
Class DBConn 
{

        const 
MYSQL 1
;
        const 
ORACLE 2
;

        private 
$connection
;

        private 
$dbType
;
        private 
$dbHost
;
        private 
$dbPort
;
        private 
$dbSID
;
        private 
$dbName
;
        private 
$dbUser
;
        private 
$dbPassword
;
        private 
$dbCharset
;


        function 
__construct($URI
) {
    
            
$this->parseURI($URI
);

            try {
                
$this    ->Connection
();

            } catch (
Exception $e
) {
                echo 
$e->getMessage
();

                
$this->__destruct
();
            }
        }

        function 
__destruct
() {

            if (
$this->dbType==MYSQL
) {
                @
mysql_close($this->connection
);
            } else if (
$this->dbType==ORACLE
) {
                @
oci_close($this->connection
);
            }
        }

        private function 
parseURI($URI
) {

            
$URI str_replace("#","_sp_",$URI
);
            
//$mysql_uri = "mysql://localhost:3306/?dbname=meris&username=meris&password=meris&charset=euckr";
            //$oracle_uri = "oracle://localhost:1521/?sid=ora10g&username=meris&password=meris&charset=";

            
$exp parse_url ($URI
);

            if (
strtolower($exp[scheme])=="mysql"
) {
                
$this->dbType=MYSQL
;
            } else if (
strtolower($exp[scheme])=="oracle"
) {
                
$this->dbType=ORACLE
;
            }

            
$this->dbHost $exp[host
];
            
$this->dbPort $exp[port
];

            
parse_str($exp[query
]);

            
$this->dbSID str_replace("_sp_","#",$dbsid
);
            
$this->dbName str_replace("_sp_","#",$dbname
);
            
$this->dbUser str_replace("_sp_","#",$username
);
            
$this->dbPassword str_replace("_sp_","#",$password
);
            
$this->dbCharset str_replace("_sp_","#",$charset
);
        }

        function 
freeStatement($stmt
) {
            if (
$this->dbType==MYSQL
) {
                @
mysql_free_result($stmt
);
            } else if (
$this->dbType==ORACLE
) {
                @
oci_free_statement($stmt
);
            }
        }

        private function 
Connection
() {
            if (
$this->dbType==MYSQL
) {
                if (!
$this->connection=@mysql_connect($this->dbHost,$this->dbUser,$this->dbPassword
)) {
                    throw new 
Exception(mysql_error
());
                }
                
                if(!
mysql_select_db($this->dbName,$this->connection
)){
                    throw new 
exception(mysql_error
());
                }  
                
                if (
$this->dbCharset
) {
                    @
mysql_query("set session character_set_connection=".$this->dbCharset.";"
);
                    @
mysql_query("set session character_set_results=".$this->dbCharset.";"
);
                    @
mysql_query("set session character_set_client=".$this->dbCharset.";"
);

                }

            } else if (
$this->dbType==ORACLE
) {
                if (!
$this->connection = @oci_connect($this->dbUser,$this->dbPassword,$this->dbSID,$this->dbCharset
)) {
                    
$error oci_error
();
                    throw new 
Exception($error[message
]);
                }

            } else {
                throw new 
Exception("No such DB Type".$this->dbType
);
            }
        }

        function 
getConnection
() {
            return 
$this->connection
;
        }

        function 
destroyConnection
() {
            if (
$this->dbType==MYSQL
) {
                @
mysql_close($this->connection
);
            } else if (
$this->dbType==ORACLE
) {
                @
oci_close($this->connection
);
            }
        }

        function 
execute($sql,$flag=OCI_COMMIT_ON_SUCCESS
) {
            if (
$this->dbType==MYSQL
) {
                if (!
$stmt = @mysql_query($sql,$this->connection
)) {
                    echo 
mysql_error
();
                    return 
false
;
                } else {
                    return 
$stmt
;
                }
            } else if (
$this->dbType==ORACLE
) {
                if (!
$stmt = @oci_parse($this->connection,$sql
)) {
                    
$error oci_error($this->connection
);
                    echo 
$error[message
];
                    return 
false
;
                }

                if (!@
oci_execute($stmt,$flag
)) {
                    
$error oci_error($stmt
);
                    echo 
$error[message
];
                    return 
false
;
                } else {
                    return 
$stmt
;
                }
            }
        }

        function 
fetchObject(&$obj,$stmt
) {
            if (
$this->dbType==MYSQL
) {
                if (
$obj=@mysql_fetch_object($stmt
)) {
                    return 
true
;
                }
            } else if (
$this->dbType==ORACLE
) {

                if (
$row = @oci_fetch_assoc($stmt
)) {
                    
$rows 
= Array();
                    while(list(
$key,$val)=each($row
)) {
                        
$rows[strtolower($key)] = $val
;
                    }
                    
$obj = (object)$rows
;
                    return 
true
;
                }
            }
            return 
false
;
        }

        function 
fetchAssoc(&$obj,$stmt
) {
            if (
$this->dbType==MYSQL
) {
                if (
$obj = @mysql_fetch_assoc($stmt
)) {
                    return 
true
;
                }
            } else if (
$this->dbType==ORACLE
) {
                if (
$row = @oci_fetch_assoc($stmt
)) {
                    
$obj 
= Array();
                    while(list(
$key,$val)=each($row
)) {
                        
$obj[strtolower($key)] = $val
;
                    }
                    return 
true
;
                }
            }

            return 
false
;
        }

        function 
fetchRow(&$obj,$stmt
) {
            if (
$this->dbType==MYSQL
) {
                if (
$obj = @mysql_fetch_row($stmt
)) {
                    return 
true
;
                }
            } else if (
$this->dbType==ORACLE
) {
                if (
$obj = @oci_fetch_row($stmt
)) {
                    return 
true
;
                }
            }

            return 
false
;
        }

        function 
fetchArray(&$obj,$stmt
) {
            if (
$this->dbType==MYSQL
) {
                if (
$obj = @mysql_fetch_array($stmt
)) {
                    return 
true
;
                }
            } else if (
$this->dbType==ORACLE
) {

                if (
$row = @oci_fetch_array($stmt
)) {
                    
$obj 
= Array();
                    while(list(
$key,$val)=each($row
)) {
                        
$obj[strtolower($key)] = $val
;
                    }
                    return 
true
;
                }
            }

            return 
false
;
        }

        function 
commit
() {
            if (
$this->dbType==ORACLE
) {
                return 
oci_commit($this->connection
);
            } else {
                return 
true
;
            }
        }

        function 
rollback
() {
            if (
$this->dbType==ORACLE
) {
                return 
oci_rollback($this->connection
);
            } else {
                return 
true
;
            }
        }

        function 
getAffectedRows($obj=""
) {
            if (
$this->dbType==MYSQL
) {
                if (
$obj==""
) {
                    return 
mysql_affected_rows
();
                } else {
                    return 
mysql_affected_rows($obj
);
                }
            }

            return 
false
;
        }
        
        function 
getNumRows($stmt
) {
            if (
$this->dbType==MYSQL
) {
                return 
mysql_num_rows($stmt
);
            }
            return 
false
;
        }

        
## 계속 추가 예정
    
}
?>


사용방법
Oracle DB 사용시 #oracle.php
<?php
    
/***************************************************************
    프로그램명    : Oracle 예제
    작성자        : 윤영식 (2006-10-18 오후 5:44)
    ***************************************************************/
    
$uri "oracle://localhost:1521/?sid=ora10g&username=meris&password=meris&charset="
;

    
// Class 호출
    
$conn = new DBConn($uri
);

    
$sql "SELECT name FROM ttable"
;

    
// 쿼리 실행
    
$stmt $conn->execute($sql
);

    
// $obj 오브젝트로 Fetch
    
$conn->fetchObject(&$obj,$stmt
);

    
// $obj->컬럼명 하면 데이터 나옴
    
$name $obj->name
;

    
$obj=null
;

    
// Statment Free
    
$conn->freeStatement($stmt
);
?>


MySQL DB 사용시 #mysql.php
<?php
    
/***************************************************************
    프로그램명    : MySQL 예제
    작성자        : 윤영식 (2006-10-18 오후 5:47)
    ***************************************************************/
    
$uri "mysql://localhost:3306/?dbname=meris&username=meris&password=meris&charset=euckr"
;

    
// Class 호출
    
$conn = new DBConn($uri
);

    
$sql "SELECT name FROM ttable"
;

    
// 쿼리 실행
    
$stmt $conn->execute($sql
);

    
// $obj 오브젝트로 Fetch
    
$conn->fetchObject(&$obj,$stmt
);

    
// $obj->컬럼명 하면 데이터 나옴
    
$name $obj->name
;

    
$obj=null
;

    
// Statment Free
    
$conn->freeStatement($stmt
);
?>


눈치 빠른 분들은 벌써 눈치 쳈겠지만...
$uri 값만 바까줌으로써.. MySQL 이든 Oracle 이든 모두 사용가능 하다.
Sybase 및 기타 다른 DB도 해보고 싶지만 설치 되어 있는 환경이 없어서 테스트 불가.

'php > Tip&Tech' 카테고리의 다른 글

php 함수목록  (0) 2013.06.02
php db connection class 범용  (0) 2011.09.27
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP 페이징 기법  (0) 2011.07.27

출처 : http://sexy.pe.kr/tc/30

페이징이란?


많은 수의 자료(레코드)를 한꺼번에 가져와 활용하기에는 비효율적이기에 일정 크기로 나누어 페이지 번호를 부여하는 방법을 방법을 말한다.
즉, 원하는 페이지번호에 해당하는 영역의 자료만 가져와 활용하기 위함이다.

페이징을 하기전에 몇가지 사전 설정을 해야한다.
  • 한페이지에 몇개의 레코드(자료)를 출력할 것인가?
  • 한화면에 페이지번호를 몇개를 출력할 것인가?
  • 현재 보고자 하는 페이지가 몇번째 페이지인가?


그리고 아래와 같은 항목이 필요하다.
  • 가져올 시작 레코드 번호
  • 가져올 마지막 레코드 번호
  • 전체 페이지 갯수
  • 페이지번호 출력 시작 번호
  • 페이지번호 출력 마지막 번호
  • 전체 레코드 갯수
  • 전체 블록 갯수
  • 현재 속해있는 블록 번호

등등을 계산해야 한다.
위에서 블록 개념을 알아야 하는데, 아래 그림을 보자.
사용자 삽입 이미지

전체 페이지 갯수가 13개일경우 한 페이지당 5개의 페이지 번호를 보여준다고 하면, 총 3개의 묶음으로 나누어 지는데, 이묶음을 페이지 블록이라고 하는데 이후로는 블록이라 이야기 하겠다.

우리가 전체 자료에서 원하는 페이지영역의 자료만 가져오기 위해서는 해당자료가 몇번째에 위치해 있는지 확인해야 할 필ㅇ가 있다. 끝나는 위치는 페이지당 몇개씩 보여줄것인가 정했기 때문에 그 갯수 만큼만 가져오면 된다.
만약, 다른 페이지를 선택하거나, 현재 목록에 없는 페이지 번호로 넘어가고자 한다면 자료의 가져올 위치뿐만 아니라 페이지번호를 출력할 시작번호와 끝번호도 필요하게 된다.

<이전> 5 6 7 8 9 10 <다음>

위와 같은 예를 보자면 한화면에 5개의 페이지 번호를 보여준다고 할때, 다음 버튼을 누르면 10번 이후의 번호부터 5개 이내의 페이지 번호를 보여주게 된다. 5개 이내라고 이야기하는 이유는 페이지 번호가 13번호까지만 있을수 있기 때문이다.
여기에서 현재 블록은 2번째이고, 이전을 선택하면 1번째 블록으로, 다음을 선택하면 3번째 블록으로 이동하게 된다.
각 블록으로 이동되었을때 블록에 해당하는 시작 페이지 번호와 끝나는 페이지 번호를 구하고, 선택된 페이지 번호에 따른 시작 레코드 번호와 끝나는 레코드 번호를 구해야 하는것이다.

사용자 삽입 이미지


우선 각 항목을 PHP 변수로 정의를 해보자.
  • $page_per_record = 10; //화면에 표시할 자료 갯수(페이지당 레코드수)
  • $block_per_page = 5; //화면에 표시할 페이지 번호 갯수(블록당 페이지수)
  • $now_page = 7; //현재 선택된 페이지 번호(GET,POST등 외부로 부터 넘어온다.)
  • $total_record = 122; //전체 레코드수는 DB를 통해 얻어온다.

페이지당 레코드수나, 블록당 페이지수는 사용자가 출력을 원하는 만큼 결정을 하면된다. 추후에도 이 수치값만 바꾸면 한번에 자료를 10개씩 보여주거나, 50개씩 보여주는등 쉽게 변경이 가능하고, 페이지 번호도 기본 5개 이지만, 10개나 20개등 마음대로 변경이 가능하다.
그리고, 페이지 번호선택은 처음 선택되지 않은경우는 대부분 1이나 마지막 페이지 번호를 선택하는 경우가 많고, 정상적인 데이터가 넘어오는가 확인은 여기에서는 다루지 않겠다. 적정한 페이지 번호로 선택된걸로 간주한다.
전체 레코드수는 보통 정해져있지 않고 자료를 가져오는 시점 DB에 있는 전체갯수를 대상으로 하기때문에 대부분 현재 DB에 전체 자료갯수를 가져오는 질의문을 통해 값을 얻어온다.

그럼 본격적으로 필요한 자료를 구해보자.
우선 시작 페이지 번호와 시작 레코드번호를 구하기 위해서는 아래와 같은 값들은 먼저 구해야 한다.
  • $total_page = ceil($total_record / $page_per_record); //전체 페이지 갯수
  • $total_block = ceil($total_page / $block_per_page); //전체 블록 갯수
  • $now_block = ceil($now_page / $block_per_page); //현재 페이지가 속해 있는 블록 번호
  • $start_record = (($now_page-1) * $page_per_record) + 1; //가져올 레코드 시작 번호
  • $start_page = (($now_block-1) * $block_per_page) + 1; //가져올 페이지 시작 번호

위에서 최종적으로 필요한 항목은 DB에서 원하는 위치의 자료를 가져오기 위한 $start_record와 페이지번호 링크를 출력하기 위한 $start_page 항목일 것이다.
끝나는 위치는 레코드의 경우는 "레코드 시작번호 + 페이지당 레코드수 -1"을 하면 나오지만, LIMIT 절에서 이용할 경우, "LIMIT 레코드 시작번호, 가져올 레코드 갯수" 이므로 가져올 레코드 끝번호를 넣으면 엉뚱한 결과를 가져온다.

위 내용을 하나씩 알아보자.
우선 페이지 번호와 블록번호는 1부터 시작함을 기억하자. 0부터 시작하는것이 수식상에서는 조금 짧아지기는 하지만 접근할때는 헷갈리고, 실제 표시되는 페이지 번호와 내부에서 처리되는 페이지 번호가 달라지기때문에 혼동이 생긴다.

먼저 전체 자료를 10개씩 보여주기로 했기때문에 총 몇개의 페이지가 생기는지 확인할 필요가 있다. 즉, 전체 자료갯수에서 페이지당 레코드 갯수로 나누어주면 구할수가 있다.
122 / 10 = 12.2
그러나 위와 같이 소수점이 발생되는 경우 자투리가 남는경우 인데, 이경우 자투리도 페이지 번호가 필요하므로 올림처리를 해주어야 한다. 즉, 총 12개가 아니라 13개의 페이지가 필요하기 때문이다.
여기에서 PHP 함수인 ceil()함수를 사용했는데 바로 소수점 올림 함수이다.

float ceil ( float $value);


전체 블록 갯수와 현재 속한 블록 번호를 구하는 이유는 자료를 출력후 다른 자료목록 이동을 위한 페이지번호를 출력할 경우 출력할 페이지 시작번호와 끝번호를 구하기 위함이다. 위 그림을 보면 이해가 쉬울것이다.

위 예제값으로 값을 구해본다면, (현재 7페이지 선택, 전체자료 122개, 레코드 10개씩, 페이지번호 5개씩 출력)
  • $total_page = ceil(122 / 10); //출력 13, 전체페이지 갯수
  • $total_block = ceil(13 / 5); //출력 3, 전체 블록 갯수
  • $now_block = ceil(7 / 5); //출력 2, 현재 7페이지가 위치한 블록 번호
  • $start_record = ((7-1) * 10)+1; //출력 61, 가져올 레코드 번호
  • $start_page = ((2-1) * 5)+1; //출력 6, 가져올 페이지 번호

위에서 구한 항목을 가지고 DB에서 자료를 가져오고, 페이지 번호 출력을 하면 완성이다.
  • DB문: "SELECT * FROM table_name WHERE 조건절 LIMIT $start_record, $page_per_record"
  • $end_page = ( ($start_page+$block_per_page) <= $total_page )? ($start_page+$block_per_page) : $total_page;
  • 페이지번호: "for($i = $start_page; $i <= $end_page; $i++)"
이런 형태로 이용하면 된다.
다만 DB에서 질의를 할경우에는 처음에 전체 레코드 갯수를 가져오는 질의문의 조건문과 동일해야 함을 잊지 말자!


그리고 페이지 번호 출력외에 이전페이지, 다음페이지, 이전 페이지 블록, 다음 페이지 블록등 페이지 블록자체를 넘어가는 경우가 필요하다. 이런경우 조건을 따져가면서 해당 요건이 되는경우 출력을 해주면 된다.
예를보자.
  • if( $now_page > 1 ) { //이전페이지 링크 출력; }
  • if( $now_page < $total_page ) { //다음페이지 링크 출력; }
  • if( $now_block > 1 ) { //이전 블록 링크 출력; }
  • if( $now_block < $total_block ) { //다음 블록 링크 출력; }
  • if( $now_block > 2 ) { //앞 블록이 2블록 이상 차이날경우 처음으로 링크 출력; }
  • if( $now_block < ($total_block-1) ) { //남은 블록이 2블록 이상인 경우 마지막으로 링크 출력; }

위 조건을 응용해서 현재 출력 페이지 번호 이외의 페이지 블록으로 이동하는 링크 출력이 가능할 것이다.

페이징 기법은 수 많은 방법들이 있습니다. 이 예제는 제가 쓰는 방법 위주로 설명을 한것이니 필요하신분 참고하세요.

'php > Tip&Tech' 카테고리의 다른 글

php 함수목록  (0) 2013.06.02
php db connection class 범용  (0) 2011.09.27
.php 확장자를 .html로 쓰기위해  (1) 2011.08.12
php 접속하면 파일 다운로드 바로 가기  (0) 2011.08.01
PHP DBConnection 클래스  (0) 2011.07.28

+ Recent posts