php로 개발을 시작하면서 php 내의 함수는 정말 다양하고 수가 많기 때문에
php 매뉴얼을 자주 찾아보게 되었는데요.
그중에서 잘 알려지진 않지만 알고 나면 알뜰하게 쓰일 함수들 5개를 선정하여 알려 드리려 합니다.
함수 목록
1. exec
2. uniqid
3. array_walk
4. setlocale
5. shuffle
1. exec()
php 내에서 리눅스 명령어를 사용할 수 있다!!
리눅스 명령어를 php 내에서 사용할 수 있게 하는 함수입니다.
사용법
string exec ( string
$command
[,
array
&$output
[,
int
&$return_var
]] )
exec("리눅스 명령어", "결과를 저장할 변수명" , "에러 발생 시 저장할 변수명")
사용 예시
$exec1 = exec('ls -l /var');
exec 구문은 해당과 같이 단일로 사용할 수도 있는데 이렇게 사용할 경우 리턴 값의 마지막 줄만 가져오기에
exec('ls -l /var',$output , $error);
리턴 값이 여러 줄 일 경우에는 이렇게 사용하여 배열로 보관해야 합니다.
출력 예시
Array ( [0] => total 148 [1] => drwxr-xr-x 2 root root 4096 Apr 8 02:55 account [2] => drwxr-xr-x 9 root root 4096 Apr 8 02:56 cache . . . [10] => drwxr-xr-x 12 root root 4096 Apr 21 04:02 log [11] => lrwxrwxrwx 1 root root 10 Apr 8 02:54 mail -> spool/mail . . )
2. uniqid()
유일한 ID 값을 간단하게 생성할 수 있다!!
유니크한 id를 생성하는 함수입니다.
기본 생성 법칙은 16진수로 된 13자리의 문자열이 마이크로초 단위를 유닉스 타임스탬프로 변형한 값으로 생성됩니다.
그중 앞 8자리는 초 단위 , 뒤 5자리는 마이크로초 단위를 16진수로 변환하여 생성됩니다.
만약 , 2번째 인자로 TRUE를 입력할 경우 16진수 23자리의 문자열로 생성됩니다.
사용법
string uniqid ([ string
$prefix
= ""
[,
bool
$more_entropy
=
FALSE
]] )
uniqid("접두어", [true or false] )
사용 예시
echo uniqid();
만약 , 생성되는 문자열에 규칙을 주고 싶다면 매개변수를 넣어야 합니다.
echo uniqid('s_');
매개변수를 넣는다면 접두어로 붙습니다.
출력 예시
String ('4b3403665fea6')
만약, 매개변수를 사용한다면
String ('[매개변수] + 4b3403665fea6')
3. array_walk()
배열의 모든 요소에 함수를 적용시킬 수 있다!!
배열의 요소마다 함수를 적용시키려고 배열을 반복시켜서 함수를 직접 적용시키는 대신 이 함수는 함수 하나로 모든 것을 해결할 수 있습니다.
사용법
bool array_walk ( array
&$array
,
callback
$funcname
[,
mixed
$userdata
] )
array_walk(배열,함수,접두어)
사용 예시
function test_alter(&$item1, $key, $prefix)
{
$item1 = "$prefix: $item1";
}
function test_print($item2, $key)
{
echo "$key. $item2<br />\n";
}
echo "Before ...:\n";
array_walk($fruits, 'test_print');
array_walk($fruits, 'test_alter', 'fruit');
echo "... and after:\n";
array_walk($fruits, 'test_print');
출력 예시
Before ...: d. lemon a. orange b. banana c. apple ... and after: d. fruit: lemon a. fruit: orange b. fruit: banana c. fruit: apple
4.setlocale()
함수 하나로 문서 인코딩을 저장한다!!
호출하여 현재 로케일 환경으로 설정하는데 쓰입니다.
카테고리의 자세한 정보는 상당히 길고 많기에
https://nxmnpg.lemoda.net/ko/3/setlocale URL을 참고해주시기 바랍니다.
setlocale(3) man page
nxmnpg.lemoda.net
사용법
string setlocale ( int
$category
,
string
$locale
[,
string
$...
] )
setlocale(카테고리,인코딩 방식)
사용 예시
echo setlocale(LC_ALL,'ko_KR.utf8');
2번째 인자를 빈 '' 로 지정하면 현재 접속한 지역정보로 지정합니다.
출력 예시
[ 문서 인코딩을 utf8로 변경합니다 ]
5.shuffle()
복잡하게 할 필요 없이 함수 하나로 배열을 랜덤 하게 섞을 수 있다!!
rand 함수를 사용하여 배열의 정보를 랜덤으로 바꾸려면 상당히 귀찮고 지루한 작업일 겁니다.
PHP는 이러한 불편함을 위해 shuffle 함수 하나로 배열을 랜덤 하게 섞을 수 있습니다.
사용법
bool shuffle ( array
&$array
)
shuffle(배열)
사용 예시
$array = array (1, "hello", 1, "world", "hello");
shuffle($array);
출력 예시
Array ( [0] => "hello" [1] => 1 [2] => 1 [3] => "hello" [4] => "world"
)
Array ( [0] => 1 [1] => "world" [2] => "hello" [3] => 1 [4] => "hello"
)
이렇게 php에서는 생각보다 유용한 함수를 많이 보유하고 있지만 익숙한 방식으로 개발하기 때문에
해당 함수에 대해 전혀 모르셨던 분도 계실 겁니다
이 글을 계기로 php에 내장된 많은 함수를 보다 유용하게 사용할 수 있으시길 바랍니다!!
written by. 세컨드스페이스
'Dev > 이야기' 카테고리의 다른 글
BGMs 개발기 (YouTube 플레이리스트 공유 및 원격 음악 재생 서비스) (0) | 2021.03.31 |
---|---|
클라이언트가 궁금해하는 IT 서비스 개발 #2 (0) | 2021.03.17 |
클라이언트가 궁금해하는 IT 서비스 개발 #1 (0) | 2021.03.17 |
Firestore + Functions 메일 보내기 (0) | 2021.03.17 |
단순 반복 작업을 효율적으로! 맥북 최고의 앱 (0) | 2021.03.17 |