brunch

You can make anything
by writing

C.S.Lewis

by 세컨드스페이스 Jul 15. 2020

PHP를 편하게 개발하기 위한 알뜰 함수 5선

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을 참고해주시기 바랍니다.


사용법

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에 내장된 많은 함수를 보다 유용하게 사용할 수 있으시길 바랍니다!!






오픈 슬랙 채널에서 소통해요!

잡담 / 개발 문화 / 일하는 방식 / 정보 공유 / 채용 문의 / 프로젝트 문의 등 어떠한 소통도 환영합니다 :)


오픈 슬랙 채널에 참여하기⬇️

https://join.slack.com/t/secondspace-open/shared_invite/zt-19q85dgid-6TCjbezQs4TTafBwT4BxAQ




written by. 세컨드스페이스

https://secondspace.kr


브런치는 최신 브라우저에 최적화 되어있습니다. IE chrome safari