테스트 사이트 - 개발 중인 베타 버전입니다

서버 상태(on/off) 나타내는 위젯을 만들고 있습니다. 채택완료

픽스타 7년 전 조회 2,345

PHP를 시작한지 이틀이 되었습니다.

그누보드를 접하면서 php도 접하게 되었는데요...

아직 뭐가 뭔지 모르겠어서 염치 없이 도움을 구합니다ㅜㅜ

 

좌측 outlogin, visit 있는 곳에

echo status 로 서버 상태를 나타내는 위젯(?)을 구현하려고 합니다.

그래서 /lib에 status.lib.php를 만들었고, (visit.lib.php 참고했습니다)

head.php에도 include_once로 status.lib.php를 포함했습니다.

 

문제는 status.lib.php인데(아래가 그 소스코드입니다)

분명 뭔가가 잘못됬다는 건 알겠는데 어디서부터 잘못됬는지 감을 못잡겠습니다.

$ip, $port 변수를 어디서 입력해줘야 하는지도 모르겠고,

getStatus라는 function은 어디서 어떻게 실행될 수 있는지도 모르겠습니다.

 

염치없지만 친절하게 도와주시면 참 고맙겠습니다...  T-T

 

</p>

<p><?php

if (!defined('_GNUBOARD_')) exit;</p>

<p>

function status($skin_dir='basic')

{

    global $config, $g5;</p>

<p>    if(preg_match('#^theme/(.+)$#', $skin_dir, $match)) {

        if (G5_IS_MOBILE) {

            $status_skin_path = G5_THEME_MOBILE_PATH.'/'.G5_SKIN_DIR.'/status/'.$match[1];

            if(!is_dir($status_skin_path))

                $status_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/status/'.$match[1];

            $status_skin_url = str_replace(G5_PATH, G5_URL, $status_skin_path);

        } else {

            $status_skin_path = G5_THEME_PATH.'/'.G5_SKIN_DIR.'/status/'.$match[1];

            $status_skin_url = str_replace(G5_PATH, G5_URL, $status_skin_path);

        }

        $skin_dir = $match[1];

    } else {

        if(G5_IS_MOBILE) {

            $status_skin_path = G5_MOBILE_PATH.'/'.G5_SKIN_DIR.'/status/'.$skin_dir;

            $status_skin_url = G5_MOBILE_URL.'/'.G5_SKIN_DIR.'/status/'.$skin_dir;

        } else {

            $status_skin_path = G5_SKIN_PATH.'/status/'.$skin_dir;

            $status_skin_url = G5_SKIN_URL.'/status/'.$skin_dir;

        }

    }</p>

<p>    ob_start();

    include_once ($status_skin_path.'/status.skin.php');

    $content = ob_get_contents();

    ob_end_clean();</p>

<p>    return $content;

}</p>

<p>function getStatus($ip, $port) {

    $socket = @fsockopen($ip, $port, $errorNo, $errorStr, 2);

    if (!$socket) return false;

    else return true;

}</p>

<p>function parser() {

        if (getStatus((string)$ip, (string)$port)) {

            $online = "true";

        }

        else {

            $online = "false";

        }

    }

    return $online;

}

?>

댓글을 작성하려면 로그인이 필요합니다.

답변 1개

채택된 답변
+20 포인트
히치하이킹

$ip, $port 변수를 어디서 입력해줘야 하는지도 모르겠고,

 

-----------------------------------------------------------------

우선 저파일을 페이지에 인클루드 시키시고

 

$result = getStatus('123.222.222.222','80');

if($result !== false{

  echo '서버온라인';

}else{

  echo '서버 오프라인';

}

 

이런식으로 사용하시구요..

 

getStatus라는 function은 어디서 어떻게 실행될 수 있는지도 모르겠습니다.

---------------------------------------------------------------------------------

대충봐서는 그냥 스킨 디렉토리 설정인것같아요..

의미 없는것같구요..

 

 

제가 function을 잘 모를때 function사용하지 않고 막 코딩하며 막 코딩이 쌓이다보니

더 편한걸 찾게되고 언제부턴가 function(함수)을 쓰고 있더라구요

 

조금 더 지나면 class도 좋아보여 class도 사용하실거고

조금 더 지나면 namespace도 쓰시게 될겁니다

 

계속 하시다보면 언젠가 아~ 하고 감이오실때가 올겁니다 

저도 많이 부족해 계속 헤딩합니다.. 저희 같이 화이팅해요..

로그인 후 평가할 수 있습니다

답변에 대한 댓글 2개

픽스타
7년 전
정말 많은 도움이 됐습니다!
답변에서 힌트를 얻어서 구현하는데 성공했습니다^^
감사드리고 화이팅합시다!
히치하이킹
7년 전
화이팅입니다 ^^!

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인