-
[php]eval 함수 이용하여 ajax 간편하게 사용하기프로그램/php 2013. 11. 6. 16:55php eval 함수를 이용하여 ajax 페이지 함수화 시키기
jQuery Ajax를 이용하여 php에서 값을 얻어오거나, 넣을때 보통
IF ELSE 구분을 사용 합니다. SWITCH 문도 사용하기도 하지요
한두개 조건문으로 했을 경우에는 상관 없지만 조건이 많아 질 수록 소스가 더러워집니다.
이를 개선하기위해 짜보았습니다.
PHP에는 아주 좋은 eval 함수가 있습니다.
eval 이란?
eval 함수란 일반 문자열을 수식으로 리턴 해주는 역할을 합니다.
간단하게 말해
function a(){
echo 1;
}
이라는 함수가 있습니다. 이 함수를 실행 할땐
a(); 라고 입력을 하면 실행이 되겠지요?
하지만 반복되는 작업을 할때 일일이 함수를 실행 시키면 뭔가 소스가 더러워집니다.
이럴때
eval("임의함수();");
로 실행을 하면 그 문자열에 맞는 함수가 실행 됩니다.
이를 활용해서 임의 함수를 인자값으로 받아오고,
그 인자값을 실행해서 return 할 수 있게 하는 겁니다.
예제) 를 통해 알아보겠습니다.
인자값으로 mode를 받아와 eval 함수로 실행을 시키는 예제 인데요.
ajax 페이지에선 echo 로 결과값을 뿌리는 것 입니다.
함수를 실행하여 return 값을 바로 echo 로 뿌려도 되지만,
가독성을 위해 변수에 담아 echo 때리는 방식으로 정리 했습니다.
$mode = $_REQUEST["mode"]; // eval("echo ".$mode."();"); eval("\$ret = ".$mode."();"); echo $ret; function a(){ return "A함수 시작"; } function b(){ return "B함수 시작"; } ?>
'프로그램 > php' 카테고리의 다른 글
PHP 파일 다운로드 함수 (0) 2014.05.12 PHP>익스플로러 호환성 강제로 낮추기 <HTTP_USER_AGENT,EmulateIE> (0) 2014.01.02 [php]POST,GET넘어 온 값 간편하게 처리하기. (0) 2013.10.18 PHP UTF-8 문자열 길이 비교하여 자르는 함수 <strcut_utf8> (0) 2013.10.01 [php]128비트 암호화 클래스 <StringEncrypter> (0) 2013.09.26