Thoughts, stories and ideas.

PHP Story

## 문자열 다루기
strpos("문자열", "찾을문자열") : 문자 시작하는 위치
substr("문자열", 시작번호, 길이)

mb_stristr("문자열", "자") => "자열" 발견 처음문자부터 나머지 문자열 반환


explode()
: 문자열을 분할하여 배열로 저장하는 함수 
explode ( delimiter, string [, limit ] )
$a = '1 2 3';
$result = explode(' ', $a);
=> $result[0] = 1




## Foreach 사용법
foreach($e_list as $row)
{
    echo $row."<br/>";
}
foreach($e_list as $key => $value)
{
    echo $key." : ".$value."<br/>";
}


## 객체
$objTest = new stdClass();
$objTest->name = "name!!";

// echo $objTest->name;
$objTest2 = new stdClass();
$objTest2->objTest2 = $objTest;
echo $objTest2->name;
// echo $objTest2->objTest2->name;

unset($objTest);
unset($objTest2);



=> stdClass 
: 문자열인덱스 배열 구조
: PHP에서 일반적으로 쓰이는 빈 클래스 (Java, Python의 object와 유사함)
: 익명 오브젝트 만들거나 동적 속성 지정할때 사용


배열 stdclass <-> array 변환
ex) a->val = "value";
or
stdClass 는 Json 으로 사용
스크립트에서 ajax 사용시 넘기는 데이터 타입 json 지정
=> stdClass로 넘어감
(일반 배열로 변환 시, json_decode($aa,true)로 선언)

외부소스

변수관련 함수
데이터형을 반환 : gettype(변수명);
데이터형 변경 : settype(변수명, "데이터형");
변수의 값존재 여부 확인 : empty(변수명);
변수 제거 : unset(변수명);

정수형으로 변환 : intval(변수명);
실수형으로 변환 : floatval(변수명);, doubleval(변수명);
문자열로 변환 : strval(변수명);

데이터형 확인하기
배열인지 확인 : is_array(변수명);
논리형인지 확인 : is_bool(변수명);
실수인지 확인 : is_float(변수명);, is_double(변수명);, is_real(변수명);
정수인지 확인 : is_int(변수명);, is_integer(변수명);, is_long(변수명);
NULL인지 확인 : is_null(변수명);
숫자로 이루어진 문자열인지 : is_numeric(변수명);
객체인지 확인 : is_object(변수명);
자원인지 확인 : is_resource(변수명);
스칼라값인지 확인 : is_scalar(변수명);
문자열인지 확인 : is_string(변수명);

배열 관련 함수
배열 생성 : array();
배열의 크기 얻기 : sizeof(), count()


배열 포인터 함수
현재 포인터가 가리키고 있는 요소 얻기 : current(배열명);
포인터를 배열의 첫 번째 요소로 이동 : reset(배열명);
포인터를 앞으로 이동 : next(배열명);
포인터를 뒤로 이동 : prev(배열명);
포인터를 배열의 마지막 요소로 이동 : end(배열명);

배열 정렬
sort(배열명);
sort(배열명, SORT_NUMERIC);
sort(배열명, SORT_STRING);
값을 기준으로 배열 정렬 : asort(배열명);
키값을 기준으로 정렬 : ksort(배열명);
내림차순의 정렬은 rsort(), krsort(), arsort() 사용
다차원 배열 정렬 : array_multisort();
영문숫자 순 정렬 : natcasesort();
영문숫자 순 정렬 : natsort();
값을 기준으로 정렬 : usort();
키값을 기준으로 정렬 : uksort();
인덱스 연관성을 유지한 채 배열 정렬 : uasort();
무작위 배치 : shuffle(배열명);

문자열 관련 함수
문자열의 크기(byte) 얻기 : strlen(변수명);
문자열의 길이 얻기 : mb_strlen(변수명, "인코딩방식");
문자열비교(대소문자포함) true시 0 반환 : strcmp("문자열", "문자열");
문자열비교(대소문자X) true시 0 반환 : strncasecmp("문자열", "문자열");

특정 문자열 검색
포함하는 부분부터 반환(앞에서부터) : strstr("문자열", "찾을문자열");
포함하는 부분부터 반환(앞에서부터)(대소문자X) : stristr("문자열", "찾을문자열");
포함하는 부분부터 반환(뒤에서부터) : strrchr("문자열", "찾을문자열");

특정 문자열 위치 얻기(앞에서부터) : strpos("문자열", "찾을문자열");
특정 문자열 위치 얻기(뒤에서부터) : strrpos("문자열", "찾을문자열");

문자열 자르기
앞에서부터 ?번째 글자까지 자르기 : substr("문자열", 값);
뒤에서부터 ?번쨰 글자까지 자르기 : substr("문자열", -값);
기준문자부터 ?번쨰 글자까지 자르기 : substr("문자열", 기준값, 값);

문자열 대소문자 바꾸기
소문자로 바꾸기 : strtolower("문자열");
대문자로 바꾸기 : strtoupper("문자열");
첫 번째 문자만 대문자로 바꾸기 : ucfirst("문자열");
각 단어의 첫 번쨰 문자만 대문자로 바꾸기 : ucwords("문자열");

문자열 나누기
특정 문자를 기준으로 문자를 나누어 배열로 저장 : explode('기준문자', 변수명);
특정 문자를 기준으로 문자를 합침 : implode('기준문자', 배열명);
특정 문자를 기준으로 문자를 토큰화 : strtok("문자열", '기준문자');

특정 문자 변경하기
문자열에 모든 특정 문자 변경 : str_replace('찾을문자', '변경할문자', "문자열");
특정 위치부터 문자 변경(앞에서부터) : substr_replace("문자열", '변경할문자', 시작위치값);
특정 위치부터 문자 변경(뒤에서부터) : substr_replace("문자열", '변경할문자', -시작위치값);
특정 위치부터 특정 위치까지 문자 변경 : substr_replace("문자열", '변경할문자', 시작위치값, 끝위치값);

공백 제거 trim(); 사용
좌측 공백 제거 : "".ltrim("문자열");
우측 공백 제거 : "".rtrim("문자열");
좌우측 공백 제거 : "".trim("문자열");

날짜 관련 함수
현재 날짜 얻기 : date("Y/m/d H:i:s");
현재 시간을 배열로 얻기 : getdate();
ex) $array = getdate();
$array[hours].$array[minutes].$array[seconds];
초 : seconds
분 : minutes
시간 : hours
일 : mday
요일 : wday
월 : mon
연도 : year
요일을 문자열로 : weekday
월을 문자열로 : month

수학 관련 함수
가장 큰 값 얻기 : max(값, 값, 값);
가장 작은 값 얻기 : min(값, 값, 값);
내림 : floor(값);
올림 : ceil(값);
반올림 : round(값);
절대값 : abs(값);
랜덤값얻기(0~32767[getrandmax()]) : rand();
랜덤값 범위로 얻기(0~값-1) : rand()%값
[출처] PHP 자주사용하는 함수|작성자 도란도란

SQL

select a.userid, b.money
    from usertable as a
        join banktable as b
            on a.userid=b.userid

기타 참고

https://www.cikorea.net/user_guide_2.1.0/