[김성민]님이 남기신 글:
>안녕하세요,
>
>전에 알려주신 POST 방식을 응용해서
>계정용량을 확인하려 파일을 하나만 만들어서 사용하려고
아래와 같이 작성했습니다.
>
>test.php-----
><?
>if(!$name){
>echo (" 아닐경우");
>}
>else {
>$du = exec("du -sh /home/$name/public_html");
>$du = substr($du,0,3);
>echo ("$name 님 '$du' 사용중");
>}
>exit;
>?>
>test.php?name=user 와 같이 호출하는데요.
>잘 됩니다.
>근데 원래는 아래와 같이 했었거든요.
>
>test.php-----
><?
>if(!$name){
>$du = exec("du -sh /home/$name/public_html");
>$du = substr($du,0,3);
>echo ("$name 님 '$du' 사용중");
>}
>else {
>echo ("아닐경우");
>}
>exit;
>?>
>
>아닐경우는 호출시 name=user 와 같이 유저를 안쓰거나 해당
정보가 없을시 에 출력되는 부분이겠죠?
>
>근데 그냥보면 if 가 이름이 있을때고, else 가 아닌경우일것
같은데, 이름을 호출하면 else 가 출력되버리더군요.
>요게 궁금합니다. 워쩐 이유로 거꾸로 해석하는지...
========================================
전자의 경우가 맞습니다.
후자는 그 반대로 코딩했군요...
if() 문을 사용할 경우, 일반적으로
긍정 -> 부정
or
부정 -> 긍정
순으로 조건을 만듭니다.
하지만 저 같은 경우는
확률적으로 많은 부분을 먼저 사용합니다.
예를들어 위와 같은 if()문 일 경우는
아무래도 확률적으로 긍정적인 조건이 많으므로($name이
존재할 가능성이 더 많음)
긍정적인 부분을 먼저 서술하고 나중에 부정적인 부분을
서술합니다.
if($name) {
if(is_dir($dir = "/home/$name/public_html")) {
$du = @exec("du -sh $dir 2>/dev/null");
$du = str_replace($dir,"",$du);
// 또는
//$du = @exec("du -sh $dir | cut -f1 2>/dev/null"); // 속도가
느림.
echo "$name : $du 사용중입니다.";
} else {
echo "$dir 디렉토리가 존재하지 않습니다. ";
}
} else {
echo "이름이 없습니다.";
}
exit;
이와 같이....
|