Home > 備忘録 > 言語関連 > php に関すること > 外部コマンドの実行( 22 )
shell_exec()と等価なバッククォート演算子(``)を利用します。
function GetPrivateIp() {
preg_match_all("/inet(.*?)cast/",`ifconfig`,$data,PREG_SET_ORDER); //shell_exec()と等価なバッククォート演算子
preg_match_all("/\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}/",$data[0][0],$ip,PREG_SET_ORDER);
return $ip[0][0];
}function GetElapsedTime(){
$uptime=`cat /proc/uptime|cut -d' ' -f1`; //スペースで分割し、第1フィールドを取得する
$days=floor($uptime/86400);
$hour=floor($uptime/3600)%24;
$min=floor($uptime/60)%60;
$sec=$uptime%60;
if($days==0&&$hour==0&&$min==0) return "{$sec}秒";
if($days==0&&$hour==0) return "{$min}分{$sec}秒";
if($days==0) return "{$hour}時間{$min}分{$sec}秒";
return "{$days}日 {$hour}時間{$min}分{$sec}秒";
}function GetElapsedTime(){
$uptime=`uptime`; //shell_exec()と等価なバッククォート演算子
if(preg_match('/up\s(\d+)\sdays?,\s+(\d{1,2}):(\d{2})/',$uptime,$str)){ //1日以上かつ1時間以上
$days=intval($str[1]);
$hour=intval($str[2]);
$min=intval($str[3]);
}elseif(preg_match('/up\s(\d+)\sdays?,\s(\d+)\smin/',$uptime,$str)){ //1日以上かつ1時間未満
$days=intval($str[1]);
$hour=0;
$min=intval($str[2]);
}elseif(preg_match('/up\s+(\d{1,2}):(\d{2})/',$uptime,$str)){ //1日未満かつ1時間以上
$days=0;
$hour=intval($str[1]);
$min=intval($str[2]);
}elseif(preg_match('/up\s(\d+)\smin/',$uptime,$str)){ //1日未満かつ1時間以上
$days=0;
$hour=0;
$min=intval($str[1]);
}else{
return false;
}
if($days==0&&$hour==0) return "{$min}分";
if($days==0) return "{$hour}時間{$min}分";
return "{$days}日 {$hour}時間{$min}分";
}