며칠 전 코딩을 하다가 shell_exec()에서 문제가 발생했었습니다.
$result = shell_exec(‘ls –al’);
echo $result;
라고 하면 파일 목록이 화면에 출력되는데..
$command = '…… command blah blah …‘;
$result = shell_exec(‘$command’);
echo $result;
라고 하면 아무것도 출력되는 것이 없었습니다.
원인은 바로 따옴표..
vim 설정이 되어 있지 않아서 color 구분이 안되어 지나친 것입니다.
작은 따옴표( ‘ )는 안에 들어있는 내용은 모두 string으로 인식하고,
큰 따옴표( “ )는 안에서 변수를 찾아 냅니다.
$result = shell_exec(“$command”); 또는 $result = shell_exec($command);
으로 작성해야 shell_exec()함수가 $command 명령을 수행하게 됩니다.
이런 특성 때문에 PHP 성능에도 영향을 미친다고 합니다.
문자열에 변수가 삽입될 경우 큰 따옴표를 사용할 수 있지만,
삽입된 변수가 없을 경우 작은 따옴표를 사용하는 것이 좋다고 합니다…^^
사용 예)
$value = ‘문자열’ . $var . ‘문자열’;
$value = “문자열 {$var} 문자열”;
참조 :
php 최적화 팁 : http://blog.ohmynews.com/hjlee222/
유용한 PHP성능 개선을 위한 팁 : http://www.xpressengine.com/study_php/1504400/page/4
이올린에 북마크하기
이올린에 추천하기