static function runner_json($info, $checkt, $offset = -1) { if (ctype_digit($checkt)) { $logfn = self::runner_logfile($info, $checkt); } else { if (preg_match(',\\.(\\d+)\\.log(?:\\.lock|\\.pid)?\\z,', $checkt, $m)) { $logfn = $checkt; $checkt = $m[1]; } else { return false; } } $data = @file_get_contents($logfn, false, null, $offset); if ($data === false) { return (object) array("error" => true, "message" => "No such log"); } // Fix up $data if it is not valid UTF-8. if (!is_valid_utf8($data)) { $data = UnicodeHelper::utf8_truncate_invalid($data); if (!is_valid_utf8($data)) { $data = UnicodeHelper::utf8_replace_invalid($data); } } $json = self::runner_generic_json($info, $checkt); $json->data = $data; $json->offset = max($offset, 0); $json->lastoffset = $json->offset + strlen($data); self::runner_status_json($info, $checkt, $json); return $json; }