서버 상태(on/off) 나타내는 위젯을 만들고 있습니다.
본문
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
<?php
if (!defined('_GNUBOARD_')) exit;
function status($skin_dir='basic')
{
global $config, $g5;
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;
}
}
ob_start();
include_once ($status_skin_path.'/status.skin.php');
$content = ob_get_contents();
ob_end_clean();
return $content;
}
function getStatus($ip, $port) {
$socket = @fsockopen($ip, $port, $errorNo, $errorStr, 2);
if (!$socket) return false;
else return true;
}
function parser() {
if (getStatus((string)$ip, (string)$port)) {
$online = "true";
}
else {
$online = "false";
}
}
return $online;
}
?>
답변 1
$ip, $port 변수를 어디서 입력해줘야 하는지도 모르겠고,
-----------------------------------------------------------------
우선 저파일을 페이지에 인클루드 시키시고
$result = getStatus('123.222.222.222','80');
if($result !== false{
echo '서버온라인';
}else{
echo '서버 오프라인';
}
이런식으로 사용하시구요..
getStatus라는 function은 어디서 어떻게 실행될 수 있는지도 모르겠습니다.
---------------------------------------------------------------------------------
대충봐서는 그냥 스킨 디렉토리 설정인것같아요..
의미 없는것같구요..
제가 function을 잘 모를때 function사용하지 않고 막 코딩하며 막 코딩이 쌓이다보니
더 편한걸 찾게되고 언제부턴가 function(함수)을 쓰고 있더라구요
조금 더 지나면 class도 좋아보여 class도 사용하실거고
조금 더 지나면 namespace도 쓰시게 될겁니다
계속 하시다보면 언젠가 아~ 하고 감이오실때가 올겁니다
저도 많이 부족해 계속 헤딩합니다.. 저희 같이 화이팅해요..