'분류 전체보기'에 해당되는 글 80건

PHP 배열2

카테고리 없음 2012. 6. 21. 18:07

PHP의 "array_keys" 함수는 배열의 모든 키 값을 배열로 반환해 주는 함수이다..

  1. <?php   
  2.   
  3.     $arr_data = array("size" => "12""color" => "red""bgcolor" => "black");   
  4.     $values = array_keys($arr_data);   
  5.        
  6.     print_r($values);   
  7.     // 출력 : Array ( [0] => size [1] => color [2] => bgcolor )   
  8.            
  9. ?>  

PHP의 "explode" 함수는 특정 구분자로 구분되어 있는 문자열을

구분자를 기준으로 나누어 배열로 변환해 주는 함수이다.

  1. <?php   
  2.     // ','가 구분자로 된 문자열을 배열로 변환   
  3.     $str = "id,email,name";    
  4.     $arr = explode(","$str);   
  5.     print_r($arr);  // 결과 : Array ( [0] => id [1] => email [2] => name )    
  6.        
  7.     $str = "id:email:name";   
  8.     $arr = explode(":"$str);   
  9.     print_r($arr);  // 결과 : Array ( [0] => id [1] => email [2] => name )   
  10. ?>  

"array_push" 함수는 기존에 선언된 배열의 가장 뒷 부분에

새로운 값을 추가하기 위해서 사용되는 함수이다.
<?php   

  1.     $list_data = array("book1""book2");   
  2.   
  3.     // 배열에 "book3" 추가   
  4.     array_push($list_data"book3");   
  5.   
  6.     // 배열에 "book4" ~ "book5" 추가   
  7.     array_push($list_data"book4""book5");   
  8.   
  9.     // 출력   
  10.     print_r($list_data);   
  11. ?>  

 

PHP의 "implode" 함수는 배열의 값들을 특정 구분자를 사용하여 문자열로 변환해 주는 함수이다.

  1. <?php   
  2.     $info = array("id""name""email");   
  3.        
  4.     // ','를 구분자로 하여 배열 값을 문자열로 변환   
  5.     $result = implode($info",");   
  6.     echo $result;   // 결과: id,name,email   
  7.        
  8.     // '*'를 구분자로 하여 배열 값을 문자열로 변환   
  9.     $result = implode($info"*");     
  10.     echo $result;   // 결과: id*name*email   
  11. ?>  

 

PHP의 "is_array" 함수는 특정 변수가 배열인지 여부를 확인하는 함수이다.

  1. <?php   
  2.     // 배열 검사   
  3.     $arr = array("item1""item2");   
  4.     echo is_array($arr) ? "true" : "false"// 결과 : true    
  5.        
  6.     // 문자열 검사   
  7.     $str = "string";   
  8.     echo is_array($str) ? "true" : "false"// 결과 : false   
  9.        
  10.     // 선언 되지 않은 변수 검사   
  11.     echo is_array($not_set) ? "true" : "false"// 결과 : false   
  12. ?>  

PHP의 "array_values" 함수는 배열에 존재하는 모든 값을 배열로 반환해 주는 함수이다.

  1. <?php   
  2.   
  3.     $arr_data = array("size" => "12""color" => "red""bgcolor" => "black");   
  4.     $values = array_values($arr_data);   
  5.        
  6.     print_r($values);   
  7.     // 출력 : Array ( [0] => 12 [1] => red [2] => black )   
  8.        
  9. ?>  

PHP의 "array_key_exists" 함수는 배열에 특정 키값이 존재하는지 확인하는 함수이다.

  1.   
  2. <?php   
  3.   
  4.     $arr_data = array("size" => "12""color" => "red""bgcolor" => "black");   
  5.        
  6.     echo array_key_exists("size"$arr_data) ? "true" : "false";    // 결과 : true   
  7.     echo array_key_exists("name"$arr_data) ? "true" : "false";    // 결과 : false   
  8.            
  9. ?> 
블로그 이미지

스마트전

,
Test.class
//인텐트 간에 값을 넘기기위해서는 반드시 Serializable 구현
public class Test implements Serializable {
private String name;
private int age;
private String addr;
public Test(String name, int age, String addr)
{
this.name = name;
this.age = age;
this.addr = addr;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getAddr() {
return addr;
}
public void setAddr(String addr) {
this.addr = addr;
}
}

TestPutExtra.class
public class TestPutExtra extends Activity {
    //Vector 는 직렬화가 잘 안됨 ArrayList 를 사용하면 됨
    ArrayList<Test> list;
    
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main); 

    Intent i = new Intent(this, TestGetExtra.class);
     list = new ArrayList<Test>();
    
     list.add(new Test("최재현", 30, "수원"));
     list.add(new Test("시스타", 30, "서울"));
     list.add(new Test("소녀시대", 30, "수원"));
     list.add(new Test("원더걸스", 30, "수원"));
     list.add(new Test("레인보우", 30, "수원"));
    
    //값을 넘김
     i.putExtra("list", list);
    
    //인텐트 시작
     startActivityForResult(i, SHOW_PREFERENCES);
     }

   @Override
    public void onActivityResult(int requestCode, int resultCode, Intent data)
    {
     super.onActivityResult(requestCode, resultCode, data);
    
     if(requestCode == SHOW_PREFERENCES)
     if(resultCode == Activity.RESULT_OK)
     {    
//넘겨준 값은 직렬화 되어 넘어가기 때문에 다른 인텐트에서 변경하여도 값이 변하지 않음
     Log.e("testResult", list.get(0).getName());
      }
    }
}

TestGetExtra.class
public class TestGetExtra extends Activity {
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.preferences);
Intent intent = getIntent();
Serializable list = intent.getSerializableExtra("list");
 
    //경고 메세지를 없에주는 어노테이션
@SuppressWarnings("unchecked")
ArrayList<Test> l = (ArrayList<Test>)list;
Log.e("test", ((Test)l.get(0)).getName());
Log.e("test", ((Test)l.get(1)).getName());
Log.e("test", ((Test)l.get(2)).getName());
Log.e("test", ((Test)l.get(3)).getName());
Log.e("test", ((Test)l.get(4)).getName());
   //첫번째 아이템 값 변경
l.get(0).setName("kara");
}
블로그 이미지

스마트전

,

PHP 함수 모음

PHP 2012. 5. 8. 16:23

날짜/시간함수

heckdate : 주어진 날짜와 시간이 올바른지 검사한다.

date : 지정한 형식으로 시간이나 날짜를 배열로 반환한다.

getdate : 날짜와 시간의 정보를 배열로 형태로 얻는다.

gettimeofday : 시스템의 현재 시간 자료를 얻는다.

gmmktime : 그리니치표준 시간으로 지정한 날짜의 유닉스 시간(timestamp)을 얻는다.

localtime : 현재 서버의 로컬 타임을 얻는다.

mktime : 지정된 날짜를 유닉스 시간(timestamp)으로 얻는다.(시,분,초,월,일,년)

microtime : 현재시간의 유닉스 시간과 마이크로타임 값을 얻는다.

strftime : 주어진 포맷으로 시간이나 날짜 정보를 출력한다.

time : 현재 시간을 유닉스 시간(timestamp)으로 얻는다.

 


문자열 함수

AddCSlashes C 형식으로 문자열에 슬래쉬를 덧붙인다.

addslashes 작은따옴표 큰따옴표와 같은 특정문자 앞에 역슬래시 문자를 붙인다.

bin2hex 바이너리 데이터를 16진수 표현으로 바꾼다.

chop 문자열의 끝에 있는 공백문자를 제거하고 문자열을 반환한다.

chr 특정 문자를 반환한다.chr()함수는 아스키함수에 해당하는 문자를 반환한다.ord()함수는 문자열에서 첫번째 문자에 아스키코드값을 반환한다.

chunk_split 문자열을 작은 조각으로 나눕니다.

count_chars 문자열 안에 사용한 문자에 대한 정보를 반환합니다.

crc32 str의 32비트 순환 반복 체크섬 값을 생성합니다. 보통 모든 데이터가 전송되었는지 확인하는 데에 사용합니다.

crypt 단방향 문자열 암호화(해슁).

echo 하나 이상의 문자열을 출력합니다.

explode 문자열을 주어진 문자열을 기준으로 분리합니다.

fprintf 문자열을 형식화하여 스트림에 기록합니다.

hebrev 논리 헤브라이어 텍스트를 표시 텍스트로 변환합니다.한 줄에 출력할 최대 문자 수를 지시합니다.

hebrevc 개행 문자(\n)를 "<br>\n"로 바꾼는 점을 제외하면, hebrev()와 동일합니다.

html_entity_decode 모든 HTML 엔티티를 해당하는 문자로 변환합니다.

htmlentities 해당하는 모든 문자를 HTML 엔티티로 변환합니다.

htmlspecialchars 특수 문자를 HTML 엔터티로 변환합니다.

'&'(앰퍼샌드)는 '&'가 됩니다.

'"'(큰 따옴표)는 ENT_NOQUOTES를 지정하지 않았을 때 '"'가 됩니다.

'''(작은 따옴표)는 ENT_QUOTES를 지정했을 때만 '''가 됩니다.

'<'(보다 작음)는 '<'가 됩니다.

'>'(보다 큼)는 '>'가 됩니다.

implode 모든 배열 원소를 순서대로, 각각의 원소 사이에 glue 문자열을 덧붙인 문자열 표현을 반환합니다.

localeconv 숫자 형식화 정보를 얻습니다.

ltrim 문자열 시작 부분의 공백을 제거합니다.

md5_file 주어진 파일명의 md5 해쉬를 계산합니다.

md5 문자열의 md5 해쉬를 계산합니다.해쉬는 16진수의 32문자입니다.

nl2br 문자열의 모든 줄바꿈 앞에 HTML 줄바꿈 태그를 삽입합니다.

nuber_format 숫자를 천 단위로 구분하여 포맷합니다.

ord 문자의 아스키 값을 반환합니다.

print 문자열을 출력합니다.

printf 형식화한 문자열을 출력합니다.

quotemeta 메타 문자를 인용합니다.문자 앞에 백슬래쉬(\)를 덧붙인 str을 반환합니다.

rtrim 문자열 끝 부분의 공백을 제거합니다.

similar_text 두 문자열 간의 유사성을 계산합니다.

sprintf 형식화한 문자열을 반환합니다.

str_ireplace 대소문자를 구별하지 않는 str_replace().

str_pad 문자열을 어떠한 길이가 되도록 다른 문자열로 채웁니다.

str_repeat 문자열을 반복합니다.

str_replace 발견한 모든 검색 문자열을 치환 문자열로 교체합니다.

str_shuffle 문자열을 랜덤하게 섞습니다.

str_split 문자열을 배열로 변환합니다.

strip_tags 문자열에서 HTML과 PHP 태그를 제거합니다.

stripcslashes addcslashes()로 처리한 문자열을 되돌립니다.

stripos 대소문자를 구별하지 않고 문자열이 처음 나타나는 위치를 찾습니다.

stripslashes addslashes()로 처리한 문자열을 되돌립니다.

strlen 문자열의 길이를 구합니다.

strpos 문자열이 처음 나타나는 위치를 찾습니다.

strrchr 문자열에서 문자가 마지막으로 나오는 부분을 찾습니다.

strrev 문자열을 뒤집습니다.

strripos 문자열에서 대소문자 구별 없이 문자열이 나타나는 마지막 위치를 찾습니다.

strrpos 문자열에서 마지막 문자의 위치를 찾습니다

strstr 문자열이 처음으로 나타나는 부분을 찾습니다

strtolower 문자열을 소문자로 만듭니다.

strtoupper 문자열을 대문자로 만듭니다.

strtr 특정 문자를 번역한다.

substr_count 부분문자열의 수를 센다

substr_replace 문자열의 일부를 치환한다.

substr 문자열의 일부를 반환한다.

trim 문자열의 처음과 끝에 있는 공백을 제거한다.

ucfirst 문자열의 처음 글자를 대문자로 만든다.

ucwords 문자열에 있는 각 단어의 처음 글자를 대문자로 바꾼다.

wordwrap 정지문자를 이용해 주어진 수 만큼의 문자를 래핑한다.

 

 

파일 시스템 함수

basename : 경로명에서 파일명만을 반환한다.

chgrp : 파일 그룹을 변환한다.

chmod : 파일의 모드를 변경한다.

chown : 파일의 소유자를 변경한다.

clearstartcache : 파일의 통계 캐시를 삭제한다.

copy : 파일을 복사하고 제대로 수행이 되면 true를 반환한다.

dirname : 경로의 구성요소에서 디렉토리 이름만 반환한다.

fopen : 파일이나 url경로의 파일을 읽기나 쓰기 모드로 연다.

fclose : fopen() 함수로 열린 파일 포인터를 닫는다.

feof : 현재 포인터의 위치가 파일 끝에 있는지 테스트한다.

fflush : 출력결과를 파일로 보낸다.

fgetc : 파일 포인터로부터 문자를 읽어들인다.

fgets : 파일을 한줄씩 읽어들인다.

file : 파일 전체 읽어서 배열(줄단위)로 반환한다.

fileatime : 파일에 접근한 최근 시간을 반환한다.

filesize : 파일의 크기를 바이트수로 반환한다.

file_exists : 지정한 파일이 존재하는지 체크한다.

fpassthru : 파일포인터에 남아 있는 데이타를 모두 출력한다.

fputs : 특정 바이트 수 만큼을 파일에 기록한다.

fread : 지정한 수만큼 파일을 읽어 들인다.

fwirte : 파일을 기록한다. is_dir : 지정한 이름이 디렉토리인지 아닌지 검사하여 반환한다.

is_executable : 지정한 이름이 실행가능한 것인지 아닌지 검사하여 반환한다.

is_file : 지정한 이름이 일반적인 파일인지 아닌지 검사하여 반환한다.

is_link : 지정한 이름이 심볼릭 링크인지 아닌지 검사하여 반환한다.

is_readable : 지정한 파일이 읽기 가능한지 검사하여 반환한다.

is_writeable : 지정한 파일이 쓰기 가능한지 검사하여 반환한다.

mkdir : 디렉토리를 생상한다.

move_uploaded_file : 업로드된 파일을 다른 곳으로 이동한다.

readfile : 파일을 읽어들여 출력한다.

rename : 파일 이름을 바꾼다.

rmdir : 디렉토리 삭제

nlink : 파일을 삭제한다.

 


디렉터리 함수

 

chdir : 디렉토리를 바꾼다.

chroot : 루트 디렉토리를 변경한다.

closedir : 디렉토리 핸들을 닫는다.

dir : 관련 함수를 사용할 수 있는 디렉토리 클래스

opendir : 지정한 디렉토리에 대한 핸들을 연다

readdir : 디렉토리에서 디렉토리 및 파일들의 이름을 읽는다.

rewinddir : 디렉토리 핸들을 제일 처음으로 되돌린다.

scandir : 지정 경로 내의 파일과 디렉토리 목록을 반환한다.

 

배열 함수

 

array_change_key_case : 모두 대문자나 소문자화된 문자열 키를 갖는 배열로 반환한다

array_chunk : 배열을 여러 덩어리로 분산시킨다

array_combine : 키를 위한 배열과 값을 위한 배열을 각각 사용하여 배열을 생성한다

array_count_values : 배열 값의 수를 센다

array_diff_assoc : 인덱스 검사와 함께 배열간의 차이를 계산한다

array_diff_uassoc : Computes the difference of arrays with additional index check which is performed by a user supplied callback function

array_diff : 배열간의 차이를 계산한다

array_fill : 배열을 특정값으로 채운다

array_filter : 콜백함수를 사용하여 배열의 원소를 필터한다

array_flip : 배열안의 모든 키를 각 키의 연관값으로 바꾼다.

array_intersect_assoc : 인덱스 검사과 함께 배열의 중복을 계산한다

array_intersect : 배열의 중복을 계산한다

array_key_exists : 주어진 키와 인덱스가 배열에 존재하는지 확인한다

array_keys : 배열의 모든 키를 반환한다

array_map : Applies the callback to the elements of the given arrays

array_merge_recursive : 두개 이상의 배열을 재귀적으로 병합한다

array_merge : 두개 이상의 배열을 병합한다

array_multisort : 여러개의 배열 또는 다차원 배열을 정렬한다

array_pad : 설정된 길이만큼 특정 값으로 배열을 채운다

array_pop : 배열 끝의 요소를 뽑아낸다

array_push : 배열의 끝에 하나 이상의 원소를 넣는다.

array_rand : 배열안에서 하나 이상의 임의 원소를 뽑아낸다

array_reduce : 콜백 함수를 사용하여 배열을 반복적으로 단일 값으로 축소시킨다

array_reverse : 배열 원소를 역순으로 반환한다

array_search : 배열에서 주어진 값을 검색하고 성공하면 해당 키를 반환한다

array_shift : 배열의 맨 앞에 있는 원소를 옆으로 이동시킨다

array_slice : 배열의 일부를 추출한다

array_splice : 배열의 일부를 삭제하고, 그 위치에 다른 내용을 대체한다

array_sum : 배열내의 값들의 합을 계산한다

array_udiff_assoc : Computes the difference of arrays with additional index check. The data is compared by using a callback function.

array_udiff_uassoc : Computes the difference of arrays with additional index check. The data is compared by using a callback function. The index check is done by a callback function also

array_udiff : Computes the difference of arrays by using a callback function for data comparison.

array_unique : 배열에서 중복된 값을 제거한다

array_unshift : 배열의 맨 앞에 하나 이상의 원소를 첨가한다

array_values : 배열의 모든 값들을 반환한다

array_walk_recursive : Apply a user function recursively to every member of an array

array_walk : 배열의 개개의 원소에 대해서 특정 함수를 적용하여 수행한다

array : 배열을 생성한다

arsort : 배열을 내림차순 정렬하고 인덱스의 상관관계를 유지한다.

asort : 배열을 정렬하고 인덱스 상관 관계를 유지한다

compact : 여러 변수들과 값을 갖는 배열을 생성한다

count : 변수의 원소 갯수를 구한다

current : 배열의 현재 원소를 반환한다

each : 배열에서 현재의 키와 값 쌍을 반환하고 배열 커서를 전진시킨다

end : 내부 배열 포인터를 마지막 원소를 가리키게 한다

extract : 배열의 현재 심볼 테이블로 변수들을 입력한다

in_array : 배열에서 값이 존재하는지 점검한다

key : 연관배열에서 키를 꺼낸다

krsort : 역순으로 키에 의해 배열을 정렬한다

ksort : 키에 의해 배열을 정렬한다

list : 배열처럼 변수들을 지정한다

natcasesort : 대소문자를 구별하지 않고 "natural order" 알고리즘을 사용하여 배열을 정렬한다

natsort : "natural order" 알고리즘을 사용하여 배열을 정렬한다

next : 배열의 내부 배열 포인터를 전진시킨다

pos : 배열에서 현재 원소를 꺼내온다

prev : 내부 배열 포인터를 앞으로 돌린다

range : 특정 범위의 원소를 갖는 배열을 생성한다

reset : 배열의 내부 포인터가 배열의 첫번째 원소를 가리키게 한다

rsort : 역순으로 배열을 정렬한다

shuffle : 배열을 뒤섞는다

sizeof : count()의 별칭

sort : 배열을 정렬한다

uasort : 사용자-정의 비교함수로 배열을 정렬하고 인덱스 연관성을 유지한다

uksort : 사용자-정의된 비교함수를 사용하여 키에 의해 배열을 정렬한다

usort : 사용자-정의된 비교함수를 사용하여 값들에 의해 배열을 정렬한다

 

정규 표현식 함수

ereg : 정규표현식으로 나타낸 패턴과 일치하는 문자열을 찾는다. 찾으면 true, 못찾으면 false

※ 세번째 인자로 배열 변수를 갖기도 함.

eregi_ereg : 위와 동일, 단 대소문자 구분 않음.

ereg_replace : 정규표현식으로 나타낸 패턴과 일치하는 문자열을 찾아 지정한 문자열로 변경

split : 정규표현식으로 나타낸 패턴과 일치하는 문자열을 경계로 배열에 저장


eregi : 대소문자를 구분하지 않는 ereg

 

 

MySQL함수

mysql_close : MySQL 접속을 닫는다.
mysql_connect : MySQL 서버에 접속한다.
mysql_errno : 에러번호를 반환한다.

mysql_error : 에러메세지를 반환한다.

mysql_fetch_array : 검색결과를 배열로 반환한다.

mysql_num_rows : 검색결과 레코드 수를 반환한다.

mysql_query : 서버에 sql 쿼리문을 전송한다.

mysql_result : 결과 데이터를 반환한다.

mysql_select_db : 작업할 데이터베이스를 선택한다.

 

세션 함수

session_start : 세션을 생성한다.

session_register : 세션에 변수를 등록한다.

session_unregister : 세션에 등록된 변수를 삭제한다.

session_unset : 세션에 등록된 모든 변수를 삭제한다.

session_ destroy : 세션을 종료한다.

session_is_registered : 변수가현재 세션에 등록되어 있는지 검사한다.

session_ name : 세션이름을 반환하거나 변경한다.

 

변수 함수

doubleval! : 변수의 실수형 값을 얻는다.

empty : 변수 값이 존재 하는지 검사한다.

get_definde_vars : 정의된 변수의 배열을 반환한다.

gettype : 변수 형을 반환한다.

import!_request_variables : GET/POST/쿠키 변수를 전역으로 가져온다.

intval : 변수의 정수형 값을 반환한다.

is_array : 변수가 배열형인지 확인한다.

is_double : 변수가 실수형인지 확인한다.

s_int : 변수가 정수인지 확인한다.

is_null : 변수가 null인지 확인한다.

is_numeric : 변수가 숫자나 숫자형인지 확인한다.

is_object : 변수가 객체인지 확인한다.

is_string : 변수가 문자열인지 확인한다.

isset : 변수가 존재하는지 확인한다.

print_r : 변수의 정보를 사람이 읽기 쉽게 출력한다.

settype : 변수형을 설정한다.

strval : 변수를 문자형 값으로 변환한다.

unserialize : PHP 값으로 변환한다.

unset : 변수를 삭제한다.

 


수학 함수

abs : 절대값을 반환한다.

cos : 아크 코사인

base_convert : 수를 임의의 진수로 변환한다.

bindec : 2진수를 10진수로 변환한다.

ceil : 소수점 이하를 올림하여 값을 구한다.

decbin : 10진수를 2진수로 변환한다.

dechex : 10진수를 16진수로 변환한다.

decoct : 10진수를 8진수로 변환한다.

floor : 소수점 이하를 내림하여 값을 구한다.

fmod : 나눗셈에서 소수점 나머지를 반환한다.

getrandmax : 랜덤 값의 가장 큰 값을 반환한다.

hexdec : 16진수를 10진수로 변환한다.

is_finite : 허용 범위의 수인지 검사한다.

is_nan : 값이 수가 아닌지 검사한다.

log : 자연로그

max : 최대값을 반환한다.

min : 최소값을 반환한다.

mt_rand : 난수를 생성한다.

pow : 거듭제곱의 값을 반환한다.

rand : 정수형의 난수를 생성한다.

round : 변수의 반올림한 값을 구한다.

sin : 아크 사인

tan : 아크 탄젠트

 


URL함수

base64_decode : base64 인코드 데이터를 원상태로 디코드한다.

base64_encode : 데이터를 base64로 인코드한다.

get_meta_tags : 메타 태그 내용을 배열로 반환한다.

http_build_query : 인코드한 쿼리 문자열을 생성한다.

parse_url : url 정보를 배열로 저장하여 구성요소를 반환한다.

rawurldecode : url 인코드 문자열을 디코드 한다.

rawurlencode : RFC 1738에 따라 url을 인코드 한다.

urldecode : 인코딩된 url 문자열을 디코드한다.

urlencode : 문자열을 url 인코드 한다.

 

 

 


오라클 함수

OCILogon : 오라클 데이터베이스에 접속한다.

OCILogOff : 오라클 접속을 해제한다.

OCIParse : 쿼리문을 파싱한다.

OCIExecute : 파싱된 쿼리문을 실행한다.

OCIBindByName : 오라클 위치보유자(Placeholder)를 PHP 변수에 연계(bind)시킨다.

OCICancel : 커서로부터 읽기를 취소한다

OCIColumnIsNULL : 결과 컬럼이 널(NULL)인지 테스트한다

OCIColumnName : 컬럼의 이름을 리턴한다.

 

OCIColumnSize : 결과 컬럼 사이즈를 리턴한다

OCIColumnType : 컬럼의 데이터 타입을 리턴한다.

OCICommit : 미결정된 트랜잭션을 커밋시킨다.

OCIDefineByName : 한 SELECT 구문사용시 정의단계(define-step)를 위한 PHP 변수를 할당한다.

OCIError : stmt|conn|global의 제일 마지막 에러를 리턴한다. 아무 에러도 없었다면 FALSE를 리턴한다.

OCIFetch : 결과 버퍼(result-buffer)로 다음 열을 페치한다

OCIFetchInto : 결과 배열(result-array)에 다음 열을 페치한다

OCIFetchStatement : 배열에 모든 열의 결과 값을 페치한다.

OCIFreeCursor : 커서(cursor)에 연관된 모든 자원을 해제한다.

OCIFreeDesc : 큰 객체(large object) descriptor를 삭제한다.

OCIFreeStatement : 구문(statement)에 연관된 모든 자원을 해제한다.

OCIInternalDebug : 내부 디버그 출력을 활성화 시키거나, 비활성화 시킨다. 기본값으로 비활성화 되어있다.


OCINewCursor : 새로운 커서(구문 핸들)를 리턴한다 - ref-cursor를 연계하기위함.


OCINewDescriptor : LOB/FILE의 비어있는 새로운 descriptor를 초기화한다 (LOB 이 기본값이다)

OCINLogon : 오라클 데이터베이스에 접속하고 새로운 접속을 이용해서 로그온한다. 새로운 세션(session)을 넘겨준다.

OCINumCols : 구문 결과값의 컬럼의 갯수를 리턴한다

OCIPLogon : 오라클 데이터베이스에 접속하고 영속적 DB 접속 (persistant connection) 을 이용해서 로그온한다. 또다른 새로운 세션(session)을 넘겨준다.

OCIResult : 페치된 열의 컬럼 값을 리턴한다

OCIRollback : 미결정된 트랜잭션을 롤백한다.

OCIRowCount : 적용되어진 열의 갯수를 가져온다


OCISetPrefetch : 사용할 열의 갯수를 설정한다


OCIStatementType : OCI 구문(statement)의 타입을 리턴한다.

 

 

 

 

 

이미지 함수

1.ImageCreate(X ,Y)

가로크기가 X 이고, 세로 크기가 Y인 이미지 파일을 만들 수 있는 가상의 작업 공간을 생성한다.

$im = ImageCreate(300,300)

 


2.ImageCreateFromGIF(파일명)

지정한 위치에 있는 GIF 파일을 가져와 그 파일과 가로 세로 크기가 같은 새 이미지를 생성한다.

$im= ImageCreateFromGIF("apple.gif")

 


3.ImageCreateFromPNG(파일명)

지정한 위치에 있는 PNG 파일을 가져와 그 파일과 가로 세로 크기가 같은 새 이미지를 생성한다.

$im = ImageCreateFromPNG("orange.png")

 


4.ImageCreateFromJPEG(파일명)

지정한 위치에 있는 JPEG 파일을 가져와 그 파일과 가로 세로 크기가 같은 새 이미지를 생성한다.

$im= ImageCreateFromJPEG("melon.jpg")

 


5.ImageGIF(식별자, 파일명)

ImageCreate() 함수나 ImageCreateFromGIF() 함수를 통해 생성되어 메모리에 올려져 있는 이미지를

브라우저나 파일로 출력한다.


식별자 : ImageCreate() 함수나 ImageCreateFromGIF() 함수로부터 반환된 이미지 식별자

파일명 : 생성될 이미지 파일의 이름

지정하지 안으면 파일이 생성되지 않고 브라우저에 출력만된다.

단 브라우저에 출력하려면 함수를 호출하기 전에 Header() 함수를 먼저 호출하여야 한다.


//브라우저 출력

$im = ImageCreate(300,300);

Header("content-type: image/gif");

ImageGIF($im);


//orange.gif 파일로 생성

$im = ImageCreate(300,300);

ImageGIF($im, "orange.gif");

 


6.ImagePNG(식별자, 파일명)

ImageCreate() 함수나 ImageCreateFromPNG() 함수를 통해 생성되어 메모리에 올려져 있는 이미지를

브라우저나 파일로 출력한다.

 


7.ImageJPEG(식별자 , 파일명)

ImageCreate() 함수나 ImageCreateFromJPEG() 함수를 통해 생성되어 메모리에 올려져 있는 이미지를

브라우저나 파일로 출력한다.

 


8.ImageDestroy(식별자)

ImageCreate() 함수에 의해 반환된 이미지 식별자가 점유하고 있던 메모리를 해제한다.

 


9.ImageColorAllocate(식별자, R, G, B )

지정한 RGB 값으로 해당 식별자가 가리키는 이미지의 배경색이나 문자열의 색깔을 바꾼다.

 


10.ImageColorDeAllocate(식별자)

ImageColorAllocate() 함수에 의해 할당되었던 색상을 제거한다.

 


11.ImageRectangle(식별자, 좌측상단X , 좌측상단Y, 우측하단 X , 우측하단 Y, 컬러식별자)

인자로 전달된 네 개의 좌표에 따라 사각형을 지정한 컬러식별자의 색상대로 그린다.


$im=imagecreate(300,300); //가로300 세로300 이미지 공간을 생성

$gray=imagecolorallocate($im, 0 ,255,0); //가장 먼저 호출되는 Imagecolorallocate()가 이미지 배경색을 채움

$red=imagecolorallocate($im,255,0,0); //imagerectangle($im, 180,180,200,200,$red);

imagerectangle($im, 180,180,200,200,$red); //지정한 색의 테두리를 갖는 사각형 생성

imagepng($im); //출력

 


12.ImageFilledRectangle(식별자, 좌측상단X , 좌측상단Y, 우측하단 X , 우측하단 Y, 컬러식별자)

ImageRectangle() 함수는 사각형의 테두리만 색을 채우지만 이 함수는 사각형 내부를 색상으로 채운다.

imagefilledrectangle($im, 180,180,200,200,$red);

 


13.ImagePolygon(식별자, 꼭지점좌표, 꼭지점수, 컬러식별자)

지정한 위치와 색깔을 테두리로 갖는 다각형을 그린다.

꼭지점좌표 : (첫번째x, 첫번째y, 두번째x, 두번째y, .....)


$im=imagecreate(400,300);

$gray=imagecolorallocate($im, 0 ,255,0);

$red=imagecolorallocate($im,255,0,0);

$point=array(10,10,150,50,120,180,39,108);

Imagepolygon($im, $point, 4, $red);

Imagepng($im);

 


14.ImageFilledPolygon(식별자, 꼭지점좌표, 꼭지점수, 컬러식별자)

ImagePolygon() 함수처럼 다각형을 생성하지만 내부가 지정된 색상으로 채워진다.

 


15.ImageLine(식별자, 시작X좌표, 시작Y좌표, 끝X좌표, 끝Y좌표, 칼라식별자)

이미지 내에 선을 긋는다.

ImageLine($im,10,10,300,10, $red)

 


16.ImageDashedLine(식별자, 시작X좌표, 시작Y좌표, 끝X좌표, 끝Y좌표, 칼라식별자)

선을 그리되 점선으로 그린다.

 


17.ImageSetPixel(식별자, X좌표, Y좌표, 칼라식별자)

좌표가 가리키는 위치에 점을 하나 찍는다.

 


18.ImageString(식별자, 폰트, X좌표, Y좌표, 문자열, 칼라식별자)

좌표가 가리키는 위치에 지정한 색깔로 문자열을 출력한다.

Imagestring($im, 1, 200, 200, "welcome PHP", $red);

 


19.ImageStringUp(식별자, 폰트, X좌표, Y좌표, 문자열, 칼라식별자)

좌표가 가리키는 위치에 지정한 색깔로 문자열을 출력하되 세로로 출력한다.

 


20.ImageChar(식별자, 폰트, X좌표, Y좌표, 문자열, 칼라식별자)

ImageString() 함수와 동일하나 단 하나의 문자만을 출력한다.

 


21.ImageCharUp(식별자, 폰트, X좌표, Y좌표, 문자열, 칼라식별자)

ImageString() 함수와 동일하나 단 하나의 문자만을 출력하되 세로로 출력한다.

 


22.ImageSX(식별자) / ImageSY(식별자)

이미지의 가로와 세로 크기를 반환한다.

 


23.GetImageSize(파일명)

GIF나 JPEG, PNG, SWF 이미지 파일의 크기 정보를 반환한다.

$size=GetImageSize("apple.jpg")

$size[0] : 이미지 가로크기 //300

$size[1] : 이미지 세로크기 //400

$size[2] : 파일의 확장자( GIF:1, JPG:2, PNG:3) //2

$size[3] : 태그안에 사용할 수 있는 형식으로 가로세로 크기값 출력 //width=320 height=400

 


24.ImageArc(식별자, 중심의X좌표, 중심의Y좌표, 타원너비, 높이, 시작점, 끝점, 컬러식별자)

타원을 그린다.

 


25.ImageFill(식별자, X좌표, Y좌표, 컬러식별자)

지정한 X, Y 좌표로 점을 찍어 그 점이 속하는 영역의 색을 칠한다.

 


26.ImageColorTransparent(식별자, 컬러식별자)

식별자가 가리키는 이미지에서 지정한 색깔을 제거해 투명하게 처리한다.

 


27.ImageCopyResized()

원본 이미지의 일부분을 대상 이미지에 복사한다.

 


28.ImageCopy()

원본 이미지의 일부분을 복사한다.

 


29.ImageTTFText()

트루타입 폰트를 이용하여 이미지에 문자열을 출력한다.

 


30.ImageTTFBBox()

인자로 전달한 문자열이 어느 정도의 자리를 차지하는지를 px 단위의 수치를 담은 배열의 형태로 반환한다.

 


31.ImageColorAt(식별자, X좌표, Y좌표)

지정한 위치의 픽셀이 가지고 있는 색깔의 인덱스를 얻는다.

 


32.ImageColorForIndex(식별자, 컬러인덱스)

지정한 클러 인덱스의 RGB 값을 연관 배열의 형태로 반환한다.

 


33.ImageColorExact(식별자, R, G, B)

특정 색깔의 컬러 인덱스를 반환한다.

 


34.ImageColorClosest(식별자, R, G, B)

지정한 RGB 성분의 각에 가장 근접하는 컬러 인덱스값을 반환한다.

 


35.ImageColorSet(식별자, 컬러인덱스, R, G, B)

지정한 컬러 인덱스에 해당하는 색깔을 red, green, blue 인자로 지정한 색깔로 바꾼다.

 


36.ImageColorResolve(식별자, R, G, B)

인자로 지정한 특정 색깔의 컬러 인덱스를 반환한다.

 


37.ImageColorsTotal(식별자)

해당 이미지 팔레트에 사용된 총 색상의 수를 반환한다.

 


38.ImageInterlace(식별자)

식별자가 가리키는 이미지의 interlace 옵션을 설정한다.

 


39.ImageTypes()

현재 설치되어 있는 PHP가 지원하는 이미지 타입을 반환한다

 

 

 

출력 제어 함수

ob_start : 출력 버퍼링을 켠다

ob_get_contents : 출력 버퍼에 저장된 내용을 반환한다.

ob_get_length : 출력 버퍼의 길이를 반환한다.

ob_end_clean : 출력 버퍼를 지우고 버퍼링을 종료한다.

ob_end_flush : 출력 버퍼를 전송하고 출력 버퍼링을 종료한다.

ob_flush : 출력 버퍼의 내용을 전송하고 버퍼 내용을 지운다.

 

 

 

 

XML 함수

xml_parser_create : XML 문서 파싱을 위해 파서를 생성한다.

xml_parser : XML 문서를 파싱한다.

xml_parser_free : 파서를 해제한다.

xml_get_error_code : 에러 코드 번호를 반환한다.

xml_error_string : 에러 메세지를 반환한다.

 

 

 

XSLT 함수

xslt_create : XSLT 변환을 수행할 XSLT프로세서를 생성한다.

xslt_errno : 에러코드를 반환한다.

xslt_error : 에러 메시지를 반환한다.

xslt_free : XSLT프로세서를 해제한다.

xslt_process : XSLT 변환을 수행한다.

 

출처 : 뮤직트로트 - http://www.xtx.kr

'PHP' 카테고리의 다른 글

PHP 내장 함수  (0) 2012.07.27
이클립스 Remote System 에서 코드 어시스트 받기 !  (0) 2012.07.11
정리  (0) 2012.05.04
php cURL  (0) 2012.04.30
PHP 코딩 팁  (0) 2012.04.23
블로그 이미지

스마트전

,

정리

PHP 2012. 5. 4. 09:26

 $v_title = str_ireplace("script","",$v_title);

대소문자 구분 하지 않는 str_replace  게시판 등의 스크립트 심기 방지 등

mysql -u root -p db_name < db.dmp   mysql import

is_string 문자열 확인

 

reset 배열 첫번째를 가르킴

if(reset(explode(".",$_SERVER[HTTP_HOST])) != "www") {

www 안붙은 놈들만

}

extract($_GET);  변수 그대로 쓰기 비추인데 은근 쓰는데 많음 유지보수 할 때 특히 디비!

'PHP' 카테고리의 다른 글

이클립스 Remote System 에서 코드 어시스트 받기 !  (0) 2012.07.11
PHP 함수 모음  (0) 2012.05.08
php cURL  (0) 2012.04.30
PHP 코딩 팁  (0) 2012.04.23
PHP 난수 (시리얼 만들기)  (2) 2012.04.09
블로그 이미지

스마트전

,

php cURL

PHP 2012. 4. 30. 18:54

cURL (Client URL Library Functions)이라는 모듈을 서버에 깔다음 실행해야 합니다.

이것이 하는 역할은 내가 원하는 주소의 페이지에서 내가 임의의 값을 넣고 그 넣은 값으로 페이지에서 리턴되는 값을 받아오는 역할입니다.

 

$ch = curl_init([String url])        /* curl 세션의 초기화 [파라메터는 선택사항]. */

curl_setopt($ch, OPTION, VALUE)  /* curl 옵션을 세팅한다. */

curl_setopt 의 OPTION
      CURLOPT_HEADER    : 헤더 정보를 받기 원한다면 이 옵션을 추가한다. VALUE : 1 OR true
      CURLOPT_NOBODY    : 본문의 정보를 받기 원하지 않는다면 이 옵션을 추가한다.
      CURLOPT_TIMEOUT  : curl 타임아웃을 설정한다.
      CURLOPT_URL            : 접속할 url정보를 설정
      CURLOPT_REFERER  : 리퍼러 정보를 설정
      CURLOPT_USERAGENT : 에이전트 정보를 설정
      CURLOPT_POST          : 전송 메소드를 post로 정의한다.
      CURLOPT_POSTFIELDS: POST 메소드라면 파라미터 값들을 이 옵션에 정의하면된다.

 

curl_exec($ch)      /* curl을 실행 */

curl_errno($ch)    /* 에러번호를 가져온다. */

curl_error($ch)    /* 에러 메시지를 가져온다. */

curl_getinfo($ch)  /* 상태 정보를 리턴한다. */

curl_close($ch)  /* curl 세션을 닫는다 */

 curl을 이용한 Gmail 로그인 예제.


$src = "https://".$gmailId.":".$gmailPw."@mail.google.com/mail/feed/atom";

$ch = curl_init();

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE);
curl_setopt($ch, CURLOPT_TIMEOUT, 10);
curl_setopt ($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_POST,true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_USERAGENT, 'My Agent Name');
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookie.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookie.txt');

$res = curl_exec($ch);

curl_close($ch);

/** 결과는 Atom xml 형식이다. DOM 또는 xml 파싱 function을 이용해서 파싱하면 됩니다. **/
echo $res;

?>

'PHP' 카테고리의 다른 글

PHP 함수 모음  (0) 2012.05.08
정리  (0) 2012.05.04
PHP 코딩 팁  (0) 2012.04.23
PHP 난수 (시리얼 만들기)  (2) 2012.04.09
git 가편 사용법 펌  (0) 2012.04.09
블로그 이미지

스마트전

,

이클립스 단축키

JSP 2012. 4. 27. 12:04

Java Editor 단축키

Ctrl + Shift + M : 특정 클래스 Import 시키기

Ctrl + Shift + O : 자동으로 Import 시키기

 

Ctrl + L : 특정 줄 번호로 가기

Ctrl + 마우스커서(혹은 F3) : 클래스나 메소드 혹은 멤버를 상세 검색

ALT + Left , ALT + Right : 이전, 이후 작업 화면

Ctrl + Shift + G : 특정 메소드나 필드를 Reference하고 있는 곳을 검색

Ctrl + , or  : 다음 annotation(에러, 워닝, 북마크 가능)으로 점프

Ctrl + T : hierarchy 팝업 창 띄우기(인터페이스 구현 클래스간 이동 시 편리)

F4 : hierachy view 퍼스펙티브 생성

Ctrl + O : 메소드나 필드 이동하기

Ctrl + Shift + Down : 클래스 내에서 다음 멤버로 이동

F2 : 컴파일 에러의 빨간 줄에 커서를 가져다가 이 키를 누르면 에러의 원인에 대한 힌트를 제공

Ctrl + 0 : 클래스 구조를 트리로 보기

Ctrl + Shift + T : 클래스 찾기

Ctrl + Shift + Space : 메소드의 파라미터 목록 보기

 

(메소드의 괄호 안에 커서를 놓고 이 키를 누르면 파라미터 타입 힌트를 볼 수 있음)

 

Ctrl + K : 찾고자 하는 문자열을 블럭으로 설정한 후 키를 누른다

Ctrl + Shift + K : 역으로 찾고자 하는 문자열을 찾아간다

Ctrl + J : Incremental find 이클립스 하단 상태 표시줄에 Incremental find 라고 표시되어 한 글자자씩 누를 때 마다 코드내의 일치하는 문자열로 이동, 다시 Ctrl + J 를 누르면 그 문자열과 일치 하는 부분을 위/아래 방향키로 탐색이 가능

Ctrl + PageUp , Ctrl + PageDown : Edit 창 좌우 이동 (Edit 창이 여러 개 띄워져 있을 경우 Edit 창간의 이동)

 

Ctrl + Shift + F : 코드 자동 정리

Ctrl + 1 : Quick Fix 에러가 발생했을 경우 Quick Fix를 통해 쉽게 해결이 가능함

Ctrl + Shift + / : 블록 주석(/* */)

Ctrl + Shift + \ : 블록 주석 제거

Ctrl + / : 여러 줄이 한꺼번에 주석 처리됨 (주석 해제하려면 반대로 하면 됨)

Alt + Up(Down) : (아래)줄과 바꾸기

Alt + Shift + UP : 커서를 기준으로 토큰단위 블럭지정

Alt + Shift + DOWN : 커서를 기준으로 토큰단위 블럭해제

Alt + Shift + 방향키 : 블록 선택하기

Alt + Shift + R : Refactoring (이름변경) - Refactoing 으로 전체 소스에서 이름변경에 의한 참조 정보를 변경해 준다

Alt + Shift + J : 자동으로 주석 달기 (메소드나 멤버변수에 포커스 두고 실행)

Alt + Shift + Z : Surround With 메뉴 (try / catch 문이나 for , do , while 등을 해당 블록에 감싸주는 메뉴가 나타남)

Ctrl + Space : 입력 보조장치(Content Assistance) 강제 호출입력하는 도중엔 언제라도 강제 호출 가능함

Ctrl + D : 한 줄 삭제

Ctrl + W : 파일 닫기

Ctrl + I : 들여쓰기 자동 수정

Ctrl + Shift + X : 대문자로 변환

Ctrl + Shift + Y : 소문자로 변환

Ctrl + Shift + L : 모든 단축키의 내용을 표시

Ctrl + Shift + B : 현재 커서 라인에 Break point 설정

 

Ctrl + F6 : 창간 전환, UltraEdit Editplus Ctrl + Tab 과 같은 기능

Ctrl + Shift + F4 : 열린 파일 모두 닫기

Ctrl + M : 전체화면 토글

Ctrl + Alt + Up(Down) : 한 줄(블럭) 복사

 

템플릿 수정환경설정/자바/편집기/템플릿

 

Window 이동

F10 : 메뉴창을 활성화

Ctrl + F8 : 다음 Perspective로 이동

Ctrl + N : 새로운 파일 및 프로젝트 생성

Ctrl + Shift + Down : Java Editor에서 다음 member로 이동

Ctrl + F7 : 다음 View로 이동

Ctrl + Shift + F7 : 이전 View로 이동

Alt + ← : 이전 작업 화면

Alt + → : 다음 작업 화면

F12 : 컴파일 중 에러 등으로 포커스가 다른 곳으로 갔을 때 Editor 로 커서 이동

Ctrl + 1 : 컴파일 에러가 발생한 곳에서 Ctrl + 1을 누를 경우 컴파일 에러에 대한 해결책을 제시

 

◈ 디버깅 단축키

Ctrl + Shift + B : 현 커서의 위치에 브레이크 포인터 설정/해제

F11 : 디버깅 시작

F8 : 디버깅 계속

F6 : 한 줄씩 실행(Step Over)

F5 : 한 줄씩 실행하되 함수일 경우 그 함수 내부로 들어감(Step Into)

Ctrl + R : 현재 라인까지 실행(Run to Line)

Ctrl + F11 : 이전에 실행되었던 Run 파일 실행

 

◈ 메소드 쉽게 생성하기

Ctrl + Space 하면 템플릿 (환경설정/자바/편집기/템플릿 에서 편집 가능)

클래스의 멤버를 일단 먼저 생성한다

override 메소드를 구현하려면, 소스메소드대체/구현 에서 해당 메소드를 체크한다

기타 클래스의 멤버가 클래스의 오브젝트라면, 소스위임메소드 생성에서 메소드를 선택한다

 

Organize import

자바파일을 여러 개 선택한 후 소스가져오기 체계화 해주면 모두 적용됨

 

◈ 소스 코드 형식 및 공통 주석 설정

환경설정자바코드 스타일코드 포맷터가져오기프로파일.xml

환경설정자바코드 스타일코드 템플릿가져오기템플릿.xml

다수의 자바파일에 프로파일을 적용하려면 패키지 탐색기에서 패키지를 선택한 후 소스형식화를 선택하면 됨

 

◈ 에디터 변환

에디터가 여러 파일을 열어서 작업 중 일 때 Ctrl + F6 키를 누르면 여러 파일명이 나오고 F6키를 계속 누르면 아래로 Ctrl + Shift + F6 키를 누르면 위로 커서가 움직임

Ctrl + F7 : 뷰간 전환

Ctrl + F8 : 퍼스펙티브간 전환

F12 : 에디터로 포커스 위치

 

 

 

'JSP' 카테고리의 다른 글

PHP 엑셀로 저장하기  (0) 2011.08.03
리눅스 기초 명령어 모음  (0) 2011.08.02
블로그 이미지

스마트전

,

PHP 코딩 팁

PHP 2012. 4. 23. 12:22

1. If a method can be static, declare it static. Speed improvement is by a factor of 4.
메쏘드가 static이 될 수 있다면 static으로 선언하라. 4배 빨라진다.

2. echo is faster than print.
echo가 print보다 빠르다.

3. Use echo’s multiple parameters instead of string concatenation.
문자열을 이어붙이지 말고, echo를 이용하여 여러 개의 파라미터를 적어라.

4. Set the maxvalue for your for-loops before and not in the loop.
for 루프을 위핸 최대값(탈출조건)을 루프 안에서가 아니고 루프 시작 이전에 지정하라.

5. Unset your variables to free memory, especially large arrays.
메모리를 해제하기 위해 변수를 unset하라. 특히 커다란 배열은 그래야 된다.

6. Avoid magic like __get, __set, __autoload
__get, __set, __autoload와 같은 마법을 피해라.

7. require_once() is expensive
require_once()는 비싸다.

8. Use full paths in includes and requires, less time spent on resolving the OS paths.
include와 require를 사용할 때, 경로를 찾는데 시간이 적게 걸리는 full path를 사용하라.

9. If you need to find out the time when the script started executing, $_SERVER[’REQUEST_TIME’] is referred to time()
스크립트가 언제 실행했는지 알고 싶으면 time()보다 $_SERVER[’REQUEST_TIME’]이 좋다.

10. See if you can use strncasecmp, strpbrk and stripos instead of regex
정규표현식보다는 가능하면 strncasecmp나 strpbrk, stripos를 사용하라.
* 역주
strncasecmp: 두 문자열의 앞쪽 일부가 대소문자 구분없이 일치하는지 확인할 때 사용
strpbrk: 문자 집합에 속한 특정 문자가 문자열에 나타나는지 확인할 때 사용
stripos: 대소문자 구분없이 특정 문자열이 다른 문자열에 포함되는지 확인할 때 사용

11. str_replace is faster than preg_replace, but strtr is faster than str_replace by a factor of 4 str_replace가 reg_replace보다 빠르지만, strtr은 str_replace보다 4배 빠르다.

12. If the function, such as string replacement function, accepts both arrays and single characters as arguments, and if your argument list is not too long, consider writing a few redundant replacement statements, passing one character at a time, instead of one line of code that accepts arrays as search and replace arguments.
만약 문자열 교체 같은 함수가 배열과 문자열을 인자로 받아들이면, 그리고 그 인자 리스트가 길지 않다면, 배열을 한 번에 받아들여서 처리하는 것 대신에 한 번에 문자열을 하나씩 넘겨서 처리하는 것을 고려해봐라.

13. It’s better to use select statements than multi if, else if, statements.
여러 개의 if/else if 문장 대신에 select 문장을 사용하는 게 더 좋다.

14. Error suppression with @ is very slow.
@를 이용한 에러 출력 방지는 매우 느리다.

15. Turn on apache’s mod_deflate
Apache의 mod_deflate를 켜라.
*역주
mod_deflate는 서버의 출력을 클라이언트에게 보내기 전에 압축하는 모듈임

16. Close your database connections when you’re done with them
DB를 다 사용했으면 연결을 닫아라.

17. $row[’id’] is 7 times faster than $row[id]
$row[’id’]가 $row[id]보다 7배 빠르다.

18. Error messages are expensive
에러 메시지는 비싸다.

19. Do not use functions inside of for loop, such as for ($x=0; $x < count($array); $x) The count() function gets called each time.
for 루프의 표현식 안에서 함수를 사용하지 마라.
for ($x = 0; $x < count($array); $x)에서 count() 함수가 매번 호출된다.

20. Incrementing a local variable in a method is the fastest. Nearly the same as calling a local variable in a function.
메쏘드 안에서 지역 변수를 증가시키는 것이 거의 함수 안에서 지역 변수를 호출(증가?)하는 것만큼 빠르다.

21. Incrementing a global variable is 2 times slow than a local var.
전역 변수를 증가시키는 것이 지역 변수를 증가시키는 것보다 2배 느리다.

22. Incrementing an object property (eg. $this->prop++) is 3 times slower than a local variable.
객체의 멤버변수를 증가시키는 것이 지역 변수를 증가시키는 것보다 3배 느리다.

23. Incrementing an undefined local variable is 9-10 times slower than a pre-initialized one.
값이 지정되지 않은 지역 변수를 증가시키는 것이 미리 초기화된 변수를 증가시키는 것보다 9~10배 느리다.

24. Just declaring a global variable without using it in a function also slows things down (by about the same amount as incrementing a local var). PHP probably does a check to see if the global exists.
전역 변수를 함수 안에서 사용하지 않으면서 그저 선언하기만 해도 (지역 변수를 증가시키는 것만큼) 느려진다. PHP는 아마 전역 변수가 존재하는지 알기 위해 검사를 하는 것 같다.

25. Method invocation appears to be independent of the number of methods defined in the class because I added 10 more methods to the test class (before and after the test method) with no change in performance.
메쏘드 호출은 클래스 안에서 정의된 메쏘드의 갯수에 독립적인 듯 하다. 왜냐하면 10개의 메쏘드를 테스트 클래스에 추가해봤으나 성능에 변화가 없었기 때문이다.

26. Methods in derived classes run faster than ones defined in the base class.
파생된 클래스의 메쏘드가 베이스 클래스에서 정의된 것보다 더 빠르게 동작한다.

27. A function call with one parameter and an empty function body takes about the same time as doing 7-8 $localvar++ operations. A similar method call is of course about 15 $localvar++ operations.
한 개의 매개변수를 가지고 함수를 호출하고 함수 바디가 비어있다면(함수 내부에서 아무것도 실행하지 않는다면) 그것은 7~8개의 지역변수를 증가시키는 것과 똑같은 시간을 차지한다. 비슷한 메쏘드 호출은 마찬가지로 15개의 지역변수를 증가시키는 연산쯤 된다.

28. Surrounding your string by ‘ instead of ” will make things interpret a little faster since php looks for variables inside “…” but not inside ‘…’. Of course you can only do this when you don’t need to have variables in the string.
문자열을 이중 따옴표 대신에 단일 따옴표로 둘러싸는 것은 좀 더 빠르게 해석되도록 한다. 왜냐하면 PHP가 이중 따옴표 안의 변수를 찾아보지만 단일 따옴표 안에서는 변수를 찾지 않기 때문이다. 물론 문자열 안에서 변수를 가질 필요가 없을 때만 이렇게 사용할 수 있다.

29. When echoing strings it’s faster to separate them by comma instead of dot. Note: This only works with echo, which is a function that can take several strings as arguments.
문자열을 echo할 때 마침표 대신에 쉼표로 분리하는 것이 더 빠르다.
주의: 이것은 여러 문자열을 인자로 받아들이는 함수인 echo로만 작동한다.

30. A PHP script will be served at least 2-10 times slower than a static HTML page by Apache. Try to use more static HTML pages and fewer scripts.
Apache에 의해 PHP 스크립트는 정적 HTML 페이지보다 최소 2에서 10배 느리게 서비스된다. 더 많은 정적 HTML 페이지와 더 적은 스크립트를 사용하려고 노력하라.

31. Your PHP scripts are recompiled every time unless the scripts are cached. Install a PHP caching product to typically increase performance by 25-100% by removing compile times.
PHP 스크립트는 캐시되지 않으면 매번 재 컴파일된다. 컴파일 시간을 제거함으로써 25~100%만큼의 성능을 증가시키기 위해 PHP 캐싱 도구를 설치하라.

32. Cache as much as possible. Use memcached - memcached is a high-performance memory object caching system intended to speed up dynamic web applications by alleviating database load. OP code caches are useful so that your script does not have to be compiled on every request
가능한 한 많이 캐시하라. memcached를 사용하라. memcached는 고성능 메모리 객체 캐싱 시스템이다.

33. When working with strings and you need to check that the string is either of a certain length you’d understandably would want to use the strlen() function. This function is pretty quick since it’s operation does not perform any calculation but merely return the already known length of a string available in the zval structure (internal C struct used to store variables in PHP). However because strlen() is a function it is still somewhat slow because the function call requires several operations such as lowercase & hashtable lookup followed by the execution of said function. In some instance you can improve the speed of your code by using an isset() trick.
문자열을 가지고 작업하며 문자열이 특정 길이인지 확인할 필요가 있을 때, strlen() 함수를 쓸 것이다. 이 함수는 계산없이 zval 구조체에서 사용할 수 있는 이미 알려진 문자열 길이를 반환하기 때문에 매우 빠르다. 그러나 strlen()이 함수이기 때문에 여전히 조금 느리다. 왜냐하면 함수 호출은 언급된 함수의 실행 뒤에 lowercase와 hashtable lookup같은 여러 개의 연산을 호출하기 때문이다. 어떤 경우에는 isset() 트릭을 이용하여 코드의 스피드를 증가시킬 수도 있다.
Ex.
if (strlen($foo) < 5) { echo "Foo is too short"; }
vs.
if (!isset($foo{5})) { echo "Foo is too short"; }
Calling isset() happens to be faster then strlen() because unlike strlen(), isset() is a language construct and not a function meaning that it's execution does not require function lookups and lowercase. This means you have virtually no overhead on top of the actual code that determines the string's length.
isset()을 호출하는 것은 strlen()과는 달리 isset()이 언어 기본문법이고 함수가 아니기 때문에 함수 찾와 lowercase 작업을 필요로 하지 않으므로 strlen()보다 더 빠를 수도 있다. 이것은 가상적으로 문자열의 길이를 결정하는 실제 코드에 과부하가 없다는 것을 의미한다.

34. When incrementing or decrementing the value of the variable $i++ happens to be a tad slower then ++$i. This is something PHP specific and does not apply to other languages, so don't go modifying your C or Java code thinking it'll suddenly become faster, it won't. ++$i happens to be faster in PHP because instead of 4 opcodes used for $i++ you only need 3. Post incrementation actually causes in the creation of a temporary var that is then incremented. While pre-incrementation increases the original value directly. This is one of the optimization that opcode optimized like Zend's PHP optimizer. It is a still a good idea to keep in mind since not all opcode optimizers perform this optimization and there are plenty of ISPs and servers running without an opcode optimizer.
변수 $i의 값을 증가시키거나 감소키킬 때, $i++은 ++$i보다 조금 더 느릴 수 있다. 이것은 PHP의 특징이고 다른 언어에는 해당되지 않으니 좀 더 빨라질 것을 기대하면서 C나 Java 코드를 바꾸러 가지 마라. 안 빨라질 것이다. ++$i는 PHP에서 좀 더 빠른데 그것은 $i++에 4개의 opcode가 사용되는 대신에 3개만 필요하기 때문이다. 후증가는 사실 증가될 임시변수의 생성을 초래한다. 반면에 전증가는 원래 값을 직접 증가시킨다. 이것은 opcode가 Zend의 PHP optimizer처럼 최적화하는 최적화 기법의 하나이다. 모든 opcode optimizer들이 이 최적화를 수행하는 것은 아니고 많은 ISP와 server들이 opcode optimizer없이 수행되고 있기 때문에 명심하는 게 좋을 것이다.

35. Not everything has to be OOP, often it is too much overhead, each method and object call consumes a lot of memory.
모든 것이 OOP일 필요는 없다. 종종 그것은 너무 많은 과부하가 된다. 각각의 메쏘드와 객체 호출은 메모리를 많이 소비한다.

36. Do not implement every data structure as a class, arrays are useful, too
모든 데이터 구조를 클래스로 구현하지 마라. 배열도 유용하다.

37. Don't split methods too much, think, which code you will really re-use
메쏘드를 너무 많이 분리하지 마라. 어떤 코드를 정말 재사용할지 생각해봐라.

38. You can always split the code of a method later, when needed
항상 메쏘드의 코드를 나중에 필요할 때 분리할 수 있다.

39. Make use of the countless predefined functions
수많은 미리 정의된 함수를 활용해라.

40. If you have very time consuming functions in your code, consider writing them as C extensions
매우 시간을 소비하는 함수가 있다면, C 확장으로 작성하는 것을 고려해봐라.

41. Profile your code. A profiler shows you, which parts of your code consumes how many time. The Xdebug debugger already contains a profiler. Profiling shows you the bottlenecks in overview
당신의 코드를 프로파일해봐라. 프로파일러는 코드의 어떤 부분이 가장 많은 시간을 소비하는지 보여준다. Xdebug 디버거는 이미 프로파일러를 포함하고 있다. 프로파일링은 전체적인 병목을 보여준다.

42. mod_gzip which is available as an Apache module compresses your data on the fly and can reduce the data to transfer up to 80%
Apache 모듈로 사용가능한 mod_gzip은 실행 중에 데이터를 압축하여 전송할 데이터를 80%까지 줄일 수 있다.


출처: 40 Tips for optimizing your php Code
      http://skystory.kr/333

'PHP' 카테고리의 다른 글

정리  (0) 2012.05.04
php cURL  (0) 2012.04.30
PHP 난수 (시리얼 만들기)  (2) 2012.04.09
git 가편 사용법 펌  (0) 2012.04.09
PHP class 정리  (0) 2012.03.30
블로그 이미지

스마트전

,

숫자로 된 시리얼 만들기

 

<?

//지정된 자릿수의 랜덤한 숫자를 반환합니다. 최대 10까지 가능합니다. 4 이면 1000 에서 9999 사이의 랜덤 숫자
function get_rand_number($len=4) {

    if (empty($len) || !is_int($len)) $len = 4;
    else if ($len < 0) $len = abs($len);
    if ($len > 10) $len = 10;

    return rand(bcpow(10, $len - 1), bcadd(bcpow(10, $len), -1));
}

//지정된 자릿수의 숫자로된 시리얼을 반환합니다. - 를 포함하고 싶지 않을때는 $cut 이 $len 보다 크거나 같으면 됩니다.
function get_serial($len=16, $cut=4, $hipen='-'){

    if (empty($len) || !is_int($len)) $len = 16;
    else if ($len < 0) $len = abs($len);

    if (empty($cut) || !is_int($cut)) $cut = 4;
    else if ($cut < 0) $cut = abs($cut);

    list($usec, $sec) = explode(' ', microtime());

    $serial = (string)bcmul((int)str_replace('.', '', (string)((float)$usec + (float)$sec)) , get_rand_number(4));
    $serial_length = strlen($serial);
    $sub = $len - $serial_length;

    if ($sub > 0) $serial .= (string)get_rand_number($sub); 
else if ($sub < 0) $serial = substr($serial, 0, $len); 

    return preg_replace("`([0-9]{" . $cut . "})`", "$1" . $hipen, $serial, floor($len / $cut) - 1);
}

echo get_serial(16, 4, '-');

?>

 

 

 

---------------------------------------------------------------------------------------------

$code = strtoupper( md5( rand( 1000 , 2000 ).date( "Y-m-d H:i:s" ).$i ) );
$sn=$code[rand(0,1)].$code[rand(2,3)].$code[rand(4,5)].$code[rand(6,7)]."-";
$sn.=$code[rand(8,9)].$code[rand(10,11)].$code[rand(12,13)].$code[rand(14,15)]."-";
$sn.=$code[rand(16,17)].$code[rand(18,19)].$code[rand(20,21)].$code[rand(22,23)];
결과물 : B307-47B8-8FC5

'PHP' 카테고리의 다른 글

php cURL  (0) 2012.04.30
PHP 코딩 팁  (0) 2012.04.23
git 가편 사용법 펌  (0) 2012.04.09
PHP class 정리  (0) 2012.03.30
PHP file 정리  (0) 2012.03.30
블로그 이미지

스마트전

,