예제 #1
0
function _logDump($filename, $data)
{
    if (!is_dir(log_path())) {
        mkdir(log_path());
    }
    $dump_dir = log_path() . '/dumps';
    if (!is_dir($dump_dir)) {
        mkdir($dump_dir);
    }
    file_put_contents($dump_dir . '/' . $filename, $data);
}
예제 #2
0
function get_log($id)
{
    $path = log_path($id);
    if (!file_exists($path)) {
        return [];
    }
    $result = [];
    $fp = fopen($path, 'r');
    if (!flock($fp, LOCK_SH)) {
        throw new RuntimeException('Cannot flock ' . $path);
    }
    while (!feof($fp)) {
        $line = fgets($fp);
        if (!$line) {
            break;
        }
        $line = rtrim($line);
        $cols = explode("\t", $line);
        $ad_id = $cols[0];
        $user = $cols[1];
        $agent = $cols[2];
        $user_attr = decode_user_key($user);
        $result[$ad_id][] = ['ad_id' => $ad_id, 'user' => $user, 'agent' => $agent, 'age' => $user_attr['age'], 'gender' => $user_attr['gender']];
    }
    fclose($fp);
    return $result;
}