Example #1
0
function s_cookie_desue()
{
    parse_str($_COOKIE['SUE'], $sues);
    parse_str($_COOKIE['SUP'], $sups);
    if (!isset($sups['et']) || !isset($sues['es']) || !($pki = s_cookie_pki()) || $sups['et'] < s_action_time() || $sues['es'] !== md5($_COOKIE['SUP'] . md5($pki))) {
        return false;
    }
    return $sups;
}
Example #2
0
function s_weibo_ago($time)
{
    if (s_bad_id($time)) {
        $time = s_action_time();
    }
    $second = s_action_time() - $time;
    if (($diff = intval($second / (60 * 60 * 24))) > 0) {
        return $diff . "天前";
    } else {
        if (($diff = intval($second / (60 * 60))) > 0) {
            return $diff . "小时前";
        } else {
            if (($diff = intval($second / 60)) > 0) {
                return $diff . "分钟前";
            }
        }
    }
    return "刚刚发表";
}
Example #3
0
function s_upload_url($name, $size = false, $types = false)
{
    if (!($file = s_upload_file($name))) {
        return false;
    }
    //生成目录
    $dir = 'shframework/' . date('Y-m-d') . '/';
    //生成文件名
    //原生的扩展名不行,一定需要换成jpg的
    //$fname  = md5($dir . $file['name']) . '.' . substr($file['type'], strpos($file['type'], '/') + 1);
    $fname = s_action_time() . md5($dir . $file['name']) . '.jpg';
    $vfs = new VFS_dpool_storage();
    $ret = $vfs->write($dir, $fname, $file['tmp_name'], true);
    //检查是否正确
    if (is_a($ret, "PEAR_Error")) {
        var_dump($ret);
        return false;
    }
    return SINA_UPLOAD_DIR . $dir . $fname;
}
Example #4
0
function s_upload_2vfs($data, $name = false, $path = false)
{
    if ($path === false) {
        //生成目录
        $path = date('Y-m-d');
    }
    if ($name === false) {
        //生成文件名
        $name = s_action_time();
    }
    //原生的扩展名不行,一定需要换成jpg的
    //$fname  = md5($dir . $file['name']) . '.' . substr($file['type'], strpos($file['type'], '/') + 1);
    $fname = s_action_time() . '_' . md5($path . $name) . '.jpg';
    $vfs = new VFS_dpool_storage();
    $ret = $vfs->write('shframework/' . $path, $fname, $file['tmp_name'], true);
    //检查是否正确
    if (is_a($ret, "PEAR_Error")) {
        return false;
    }
    return SINA_UPLOAD_DIR . $path . $fname;
}
function &s_watermark(&$photo, &$watermark, $x = 0, $y = 0)
{
    if (s_bad_gd() || s_bad_string($photo) || s_bad_string($watermark)) {
        return s_err_arg();
    }
    //获取底板图片和水印图片
    if (false === ($plate = @imagecreatefromjpeg($photo)) || false === ($water = @imagecreatefrompng($watermark))) {
        return s_err_log('image error.');
    }
    //计算水平间隔
    //检查图片大小
    $p_w = imagesx($plate);
    $p_h = imagesy($plate);
    $w_w = imagesx($water);
    $w_h = imagesy($water);
    if ($p_w < $w_w || $p_h < $w_h) {
        //消毁对象
        imagedestroy($plate);
        imagedestroy($water);
        return s_err_log('water height or width more than plate');
    }
    //TODO: 使用临时目录
    $time = s_action_time();
    $path = '/tmp/';
    $path .= defined('APP_NAME') ? APP_NAME : date('Y-m-d', $time) . '_auto';
    if (!is_dir($path) && !mkdir($path, 0755, true)) {
        return false;
    }
    $file = $path . '/' . $time . '_' . rand(1, 10000) . '.jpg';
    //合并图片
    if (false === imagecopy($plate, $water, $p_w - $w_w, $p_h - $w_h, 0, 0, $w_w, $w_h) || false === imagejpeg($plate, $file)) {
        return s_err_log('unsuccess to {$file}.');
    }
    //消毁对象
    imagedestroy($plate);
    imagedestroy($water);
    //返回图片地址或者图片数据
    return $file;
}
Example #6
0
function s_log_trace(&$trace, &$msg = false)
{
    if (!is_array($trace)) {
        return false;
    }
    $msg = $msg ? ' =>' . $msg : '';
    $args = array();
    $list = isset($trace['args']) ? $trace['args'] : array();
    foreach ($list as &$arg) {
        $args[] = str_replace("\n", '', print_r($arg, true));
        unset($arg);
    }
    //将debug_traceback转换成字符串
    return sprintf("[%s][LOG]:%s [%d]:%s(%s) %s", date('m-d H:i:s', s_action_time()), $trace['file'], $trace['line'], $trace['function'], implode(', ', $args), $msg);
}
Example #7
0
function s_action_file($path = false)
{
    if ($path === false) {
        //随机产生一个文件
        $path = s_action_time() . '_' . rand();
    }
    if (substr($path, 0, 1) !== '/') {
        //非绝对路径,处理成绝对路径
        if (false === ($dir = s_action_dir()) || s_bad_string($dir['dir'], $dir)) {
            //获取默认临时目录失败
            return false;
        }
        //生成绝对路径
        $path = $dir['dir'] . $path;
    }
    //清空已存在的文件
    return false === file_put_contents($path, '') ? false : $path;
}
Example #8
0
function s_action_file($path = false)
{
    if ($path === false) {
        //获取系统当前的临时目录
        $path = $_SERVER['SINASRV_CACHE_DIR'] . (defined('APP_NAME') ? APP_NAME : 'smarty_autocreate');
    }
    //随机产生一个文件
    $path .= s_action_time() . '_' . rand(0, 10000);
    //如果定入成功,返回文件路径
    return false === file_put_contents($path, '') ? false : $path;
}