用户注册



邮箱:

密码:

用户登录


邮箱:

密码:
记住登录一个月忘记密码?

发表随想


还能输入:200字
云代码 - php代码库

新浪微盘API demo(上传文件 获取下载链接)vDisk.class.php

2013-08-06 作者: 小蜜锋举报

[php]代码库

<?php
require_once('vDisk.class.php');
require_once('../class/e_vDisk.class.php');
/**
 * 重新封装的微盘类
 * 
 * @author aimsam
 *
 */
class vDisk_simple
{
    private $appkey; //
    private $appsecret;
    private $username;
    private $password;
    private $token;
    private $vDisk;
    
    /**
     * 构造方法
     * 
     * @param unknown_type $app_key
     * @param unknown_type $app_secret
     * @param unknown_type $username
     * @param unknown_type $password
     */
    public function __construct($vDisk)
    {
        if (!($vDisk->getAppkey() && $vDisk->getAppsecret() && $vDisk->getUsername() && $vDisk->getPassword())) {
            $this->set_error(-2, 'app_key or app_secret or password or username empty');
            return;
        }
        
        
        
        $this->vDisk = new vDisk($vDisk->getAppkey(), $vDisk->getAppsecret()); //创建微盘
        $this->vDisk->get_token($vDisk->getUsername(), $vDisk->getPassword()); //获取token
        $_SESSION['token'] = $vdisk->token;
        $back              = $this->vDisk->keep_token(); //保持token
        return $back['err_msg'];
    }
    
    
    
    
    
    
    /**
     * 上传文件(10M以下)
     * 
     * @param unknown_type $file
     * @param unknown_type $cover
     */
    public function upload_file($file, $cover = 'yes')
    {
        if ($file["error"] > 0) {
            $data['msg'] == "file_error"; //文件错误
        } else if ($file["size"] / 1024 / 1024 > 10) {
            $data['msg'] == "size_error"; //文件大于10MB
        } else {
            $back        = $this->vDisk->upload_file($file["tmp_name"], 0);
            $data['fid'] = $back['data']['fid'];
            $random      = date("Ymd") . "_" . date("His") . "_" . rand(1000, 9999);
            
            $this->vDisk->rename_file($back['data']['fid'], $random . "_" . $file["name"]);
            $back        = $this->vDisk->get_file_info($data['fid']);
            $data['msg'] = $back['err_msg'];
        }
        return $data;
    }
    
    /**
     * 获得下载地址
     * @param unknown_type $fid
     */
    public function get_download_url($fid)
    {
        $back = $this->vDisk->get_file_info($fid);
        
        if ($back['err_msg'] == 'success') {
            $data['msg'] = "success";
            $data['fid'] = $back['data']['id'];
            $data['url'] = $back['data']['s3_url'];
        } else {
            $data['msg'] = "error";
        }
        
        return $data;
    }
    
    /**
     * 获得剩余容量
     */
    public function get_rest_area()
    {
        $back          = $this->vDisk->get_quota();
        $data["msg"]   = $back["err_msg"];
        $data["used"]  = $back["data"]["used"];
        $data["total"] = $back["data"]["total"];
        $data["rest"]  = $back["data"]["total"] - $back["data"]["used"];
        
        return $data;
    }
    
    /**
     * 删除文件
     * @param unknown_type $fid
     */
    public function delete_file($fid)
    {
        return $this->vDisk->delete_file($fid);
        
    }
    
    /**
     * 获得文件列表
     */
    public function get_list()
    {
        $back = $this->vDisk->get_list(0);
        foreach ($back["data"] as $temp) {
            $temp2["fid"]  = $temp["id"];
            $temp2["name"] = $temp["name"];
            $data[]        = $temp2;
        }
        
        return $data;
    }
    
    /**
     * 是否可用
     */
    public function isUsed()
    {
        $back = $this->vDisk->keep_token(); //保持token
        if (!$back['err_msg'] != 'success') {
            return FALSE; //密码错误
        }
        $temp = get_rest_area();
        if (($temp['rest'] / 1024 / 1024) < 50) //如果小于50M
            {
            return FALSE;
        }
        
        return TRUE;
    }
    
}

?>


=================
附上vDisk.class.php
=================
<?php

/**
 * vDisk sdk for SAE and Standard PHP (SaeFetchurl or CURL)
 *
 * @package vDisk
 *
 * @version $Id$
 *
 * @author Bruce Chen
 *
 */
 
 
/**
 * URL
 */
define(URL_GET_TOKEN, 'http://openapi.vdisk.me/?m=auth&a=get_token');
define(URL_KEEP_TOKEN, 'http://openapi.vdisk.me/?m=user&a=keep_token');
define(URL_UPLOAD_FILE, 'http://openapi.vdisk.me/?m=file&a=upload_file');
define(URL_UPLOAD_SHARE_FILE, 'http://openapi.vdisk.me/?m=file&a=upload_share_file');
define(URL_CREATE_DIR, 'http://openapi.vdisk.me/?m=dir&a=create_dir');
define(URL_GET_LIST, 'http://openapi.vdisk.me/?m=dir&a=get_list');
define(URL_GET_QUOTA, 'http://openapi.vdisk.me/?m=file&a=get_quota');
define(URL_UPLOAD_WITH_SHA1, 'http://openapi.vdisk.me/?m=file&a=upload_with_sha1');
define(URL_GET_FILE_INFO, 'http://openapi.vdisk.me/?m=file&a=get_file_info');
define(URL_DELETE_DIR, 'http://openapi.vdisk.me/?m=dir&a=delete_dir');
define(URL_DELETE_FILE, 'http://openapi.vdisk.me/?m=file&a=delete_file');
define(URL_COPY_FILE, 'http://openapi.vdisk.me/?m=file&a=copy_file');
define(URL_MOVE_FILE, 'http://openapi.vdisk.me/?m=file&a=move_file');
define(URL_RENAME_FILE, 'http://openapi.vdisk.me/?m=file&a=rename_file');
define(URL_RENAME_DIR, 'http://openapi.vdisk.me/?m=dir&a=rename_dir');
define(URL_MOVE_DIR, 'http://openapi.vdisk.me/?m=dir&a=move_dir');
define(URL_SHARE_FILE, 'http://openapi.vdisk.me/?m=file&a=share_file');
define(URL_CANCEL_SHARE_FILE, 'http://openapi.vdisk.me/?m=file&a=cancel_share_file');
define(URL_RECYCLE_GET_LIST, 'http://openapi.vdisk.me/?m=recycle&a=get_list');
define(URL_TRUNCATE_RECYCLE_GET, 'http://openapi.vdisk.me/?m=recycle&a=truncate_recycle');
define(URL_RECYCLE_DELETE_FILE, 'http://openapi.vdisk.me/?m=recycle&a=delete_file');
define(URL_RECYCLE_DELETE_DIR, 'http://openapi.vdisk.me/?m=recycle&a=delete_dir');
define(URL_RECYCLE_RESTORE_FILE, 'http://openapi.vdisk.me/?m=recycle&a=restore_file');
define(URL_RECYCLE_RESTORE_DIR, 'http://openapi.vdisk.me/?m=recycle&a=restore_dir');
define(URL_GET_DIRID_WITH_PATH, 'http://openapi.vdisk.me/?m=dir&a=get_dirid_with_path');
define(URL_EMAIL_SHARE_FILE, 'http://openapi.vdisk.me/?m=file&a=email_share_file');



/*
 * 使用方法:
 * 
 * include_once('vDisk.class.php');
 * $appkey = 1234567;
 * $appsecret = '123456739cc20556637a576ea1234567';
 * $username = 'username@gmail.com';
 * $password = '123456';
 * 
 * $vdisk = new vDisk($appkey, $appsecret);
 * 
 * $vdisk->get_token($username, $password);
 * $_SESSION['token'] = $vdisk->token;
 * 
 * $vdisk->keep_token();
 * 
 * //$r = $vdisk->upload_share_file('文件.txt', 0);
 * //$r = $vdisk->get_list(0);
 * //$r = $vdisk->get_quota();
 * //$r = $vdisk->upload_with_md5('测试.pdf', '03d5717869bb075e3bad73b527fabc8a');
 * //$r = $vdisk->get_file_info(219379);
 * //$r = $vdisk->create_dir('测试一下');
 * //$r = $vdisk->delete_dir(35647);
 * //$r = $vdisk->delete_file(123);
 * //$r = $vdisk->copy_file(219379, 0, '副本.txt');
 * //$r = $vdisk->move_file(219379, 0, '副本.txt');
 * //$r = $vdisk->rename_file(219379, '新的新的新的.z');
 * //$r = $vdisk->rename_dir(3929, '新的新的新的');
 * $r = $vdisk->move_dir(3929, "我的图片们", 0);
 * print_r($r);
 * 
 * 
*/


class vDisk 
{

	public $appkey;
	public $appsecret;
	public $username;
	public $password;
	public $token;
	
	private $_errno;	
	private $_error;
	
	
	/**
	 * 构造函数
	 *
	 * @param string $app_key 分配给你的appkey
	 * @param string $app_secret 分配给你的appsecret
	 *
 	 * @return void 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function __construct($app_key, $app_secret)
	{
		if(!($app_key && $app_secret)) 
		{	
			$this->set_error(-2, 'app_key or app_secret empty');
			return;
		}
		
		$this->appkey = $app_key;
		$this->appsecret = $app_secret;
		$this->set_error(-1, 'empty');
	}
	
	
	/**
	 * 获得token
	 *
	 * @param string $username 
	 * @param string $password 
	 * @param string $app_type 可选参数, 如:$app_type=sinat (注意: 目前支持微博帐号)
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function get_token($username, $password, $app_type=null)
	{
		
		$this->username = $username;
		$this->password = $password;
		
		$time = time();
		$param = array( 
		
				'account' => $username, 
				'password' => $password, 
				'time' => $time,
				'appkey' => $this->appkey,
				'app_type' => $app_type,
				'signature' => hash_hmac('sha256', "account={$username}&appkey={$this->appkey}&password={$password}&time={$time}", $this->appsecret, false)
			);
	
		$data = $this->_request(URL_GET_TOKEN, $param);
		
		if($data && $data['err_code'] == 0)
		{
			$this->token = $data['data']['token'];
		}
		
		return $data;
	}
	
	
	/**
	 * 保持token
	 *
	 * @param string $token 可选参数
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function keep_token($token=null)
	{
		if($token)
		{
			$this->token = $token;
		}
		
		if($this->token)
		{
			$param = array(
			
					'token' => $this->token
				);
				
			$data = $this->_request(URL_KEEP_TOKEN, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 上传文件(10M以下)
	 *
	 * @param string $file_path 本地文件真实路径
	 *
	 * @param int $dir_id 目录id
	 *
	 * @param string $cover 可选参数, yes:覆盖; no:如有重名返回错误信息
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function upload_file($file_path, $dir_id, $cover='yes')
	{
		
		if($this->token)
		{
			$param = array(
			
				'file' => '@'.$file_path,
				'token' => $this->token,
				'dir_id' => $dir_id,
				'cover' => $cover
			);
			
			$data = $this->_request(URL_UPLOAD_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
		
	}
	
	
	/**
	 * 上传并分享文件(10M以下)
	 *
	 * @param string $file_path 本地文件真实路径
	 *
	 * @param int $dir_id 目录id
	 *
	 * @param string $cover 可选参数, yes:覆盖; no:如有重名返回错误信息
	 *
 	 * @return array 包含分享后的url
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function upload_share_file($file_path, $dir_id, $cover='yes')
	{
		if($this->token)
		{
			$param = array(
			
				'file' => '@'.$file_path,
				'token' => $this->token,
				'dir_id' => $dir_id,
				'cover' => $cover
			);
			
			$data = $this->_request(URL_UPLOAD_SHARE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 创建目录
	 *
	 * @param string $create_name 目录的名称
	 *
	 * @param int $parent_id 父目录的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function create_dir($create_name, $parent_id=0)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'create_name' => $create_name,
				'parent_id' => $parent_id
			);
			
			$data = $this->_request(URL_CREATE_DIR, $param);
			
			return $data;
		}
		else
		{
			return false;
		}

	}
	
	
	/**
	 * 获得列表(包括文件和子目录)
	 *
	 * @param int $dir_id 目录的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function get_list($dir_id)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'dir_id' => $dir_id
			);
			
			$data = $this->_request(URL_GET_LIST, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 获得容量信息
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function get_quota()
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token
			);
			
			$data = $this->_request(URL_GET_QUOTA, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 无文件上传(md5)
	 *
	 * @param string $file_name 上传以后的文件名
	 * @param string $md5 要上传文件的md5值
	 * @param int $dir_id 目标目录的id, 0为根目录
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function upload_with_sha1($file_name, $sha1, $dir_id=0)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'file_name' => $file_name,
				'sha1' => $sha1,
				'dir_id' => $dir_id
			);
			
			$data = $this->_request(URL_UPLOAD_WITH_SHA1, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 获得文件的信息
	 *
	 * @param int $fid 文件的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function get_file_info($fid)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid,
			);
			
			$data = $this->_request(URL_GET_FILE_INFO, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 删除目录
	 *
	 * @param int $dir_id 目录的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function delete_dir($dir_id)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'dir_id' => $dir_id,
			);
			
			$data = $this->_request(URL_DELETE_DIR, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 删除文件
	 *
	 * @param int $fid 文件的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function delete_file($fid)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid,
			);
			
			$data = $this->_request(URL_DELETE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 复制文件
	 *
	 * @param int $fid 要复制文件的id
	 * @param int $to_dir_id 目标目录的id
	 * @param string $new_name 副本文件的名称
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function copy_file($fid, $to_dir_id, $new_name)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid,
				'to_dir_id' => $to_dir_id,
				'new_name' => $new_name
			);
			
			$data = $this->_request(URL_COPY_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 移动文件
	 *
	 * @param int $fid 要移动文件的id
	 * @param int $to_dir_id 目标目录的id
	 * @param string $new_name 移动后的文件名称
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function move_file($fid, $to_dir_id, $new_name)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid,
				'to_dir_id' => $to_dir_id,
				'new_name' => $new_name
			);
			
			$data = $this->_request(URL_MOVE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 重命名文件
	 *
	 * @param int $fid 文件的id
	 * @param string $new_name 新文件名称
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function rename_file($fid, $new_name)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid,
				'new_name' => $new_name
			);
			
			$data = $this->_request(URL_RENAME_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}		
	}
	
	
	/**
	 * 重命名目录
	 *
	 * @param int $dir_id 目录的id
	 * @param string $new_name 新名称
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function rename_dir($dir_id, $new_name)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'dir_id' => $dir_id,
				'new_name' => $new_name
			);
			
			$data = $this->_request(URL_RENAME_DIR, $param);
			
			return $data;
		}
		else
		{
			return false;
		}	
	}
	
	
	/**
	 * 移动目录
	 *
	 * @param int $dir_id 目录的id
	 * @param string $new_name 移动后的名称
	 * @param int $to_parent_id 目标目录的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function move_dir($dir_id, $new_name, $to_parent_id)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'dir_id' => $dir_id,
				'new_name' => $new_name,
				'to_parent_id' => $to_parent_id
			);
			
			$data = $this->_request(URL_MOVE_DIR, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
		
	/**
	 * 分享文件
	 *
	 * @param int $fid 文件的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function share_file($fid)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid
			);
			
			$data = $this->_request(URL_SHARE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 取消分享
	 *
	 * @param int $fid 文件的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function cancel_share_file($fid)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid
			);
			
			$data = $this->_request(URL_CANCEL_SHARE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 获得回收站列表
	 *
	 * @param int $page 第几页
	 * @param int $page_size 每页显示条数
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function recycle_get_list($page=1, $page_size=25)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'page' => $page,
				'page_size' => $page_size
			);
			
			$data = $this->_request(URL_RECYCLE_GET_LIST, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 清空回收站
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function truncate_recycle()
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token
			);
			
			$data = $this->_request(URL_TRUNCATE_RECYCLE_GET, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	/**
	 * 从回收站中彻底删除一个文件
	 *
	 * @param int $fid 文件id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function recycle_delete_file($fid)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid
			);
			
			$data = $this->_request(URL_RECYCLE_DELETE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	/**
	 * 从回收站中彻底删除一个目录
	 *
	 * @param int $dir_id 目录的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function recycle_delete_dir($dir_id)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'dir_id' => $dir_id
			);
			
			$data = $this->_request(URL_RECYCLE_DELETE_DIR, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	
	/**
	 * 从回收站中还原一个文件
	 *
	 * @param int $fid 文件id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function restore_file($fid)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid
			);
			
			$data = $this->_request(URL_RECYCLE_RESTORE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 从回收站中还原一个目录
	 *
	 * @param int $dir_id 目录的id
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function restore_dir($dir_id)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'dir_id' => $dir_id
			);
			
			$data = $this->_request(URL_RECYCLE_RESTORE_DIR, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	/**
	 * 通过路径得到目录
	 *
	 * @param string $path 路径
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function get_dirid_with_path($path)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'path' => $path
			);
			
			$data = $this->_request(URL_GET_DIRID_WITH_PATH, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 通过邮件发送文件链接
	 *
	 * @param int $fid
	 * @param string $to_email
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	public function email_share_file($fid, $to_email)
	{
		if($this->token)
		{
			$param = array(

				'token' => $this->token,
				'fid' => $fid,
				'to_email' => $to_email
			);
			
			$data = $this->_request(URL_EMAIL_SHARE_FILE, $param);
			
			return $data;
		}
		else
		{
			return false;
		}
	}
	
	
	/**
	 * 发送http请求, 兼容SEA的Fetchurl, 私有方法
	 *
	 * @param string $url 
	 * @param array $array  POST DATA ($array=null为GET方式)
	 *
 	 * @return array 
	 *
	 * @author Bruce Chen
	 *
 	*/
	private function _request($url, $array=null)
	{
		if(!isset($_SERVER['HTTP_APPNAME']))
		{
			$curl = curl_init();
			curl_setopt($curl, CURLOPT_URL, $url);
			curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
			if($array != null)
			{
				curl_setopt($curl, CURLOPT_POST, true);
				curl_setopt($curl, CURLOPT_POSTFIELDS, $array);
			}
			$data = curl_exec($curl);
			curl_close($curl);
			if($arr = json_decode($data, true))
			{	
				$this->set_error($arr['err_code'], $arr['err_msg']);
				return $arr;
			}
			else
			{
				$this->set_error(-1, 'empty');
				return false;
			}
		}
		else
		{
			if($array != null)
			{
				$this->_f()->setMethod('post');
				$this->_f()->setPostData($array);			
			}
			
			$data = $this->_f()->fetch($url);
		
			if($arr = json_decode($data, true))
			{
				$this->set_error($arr['err_code'], $arr['err_msg']);	
				return $arr;
			}
			else
			{	
				$this->set_error(-1, 'empty');
				return false;
			}
		}
					
	}

	/**
	 * 返回SaeFetchurl object, 保证只new一次
	 *
 	 * @return SaeFetchurl object 
	 *
	 * @author Bruce Chen
	 *
 	*/
	private function _f()
	{
		if(!isset($this->_f)) 
			$this->_f = new SaeFetchurl();
		
		return $this->_f;
	}
	
	
	private function set_error($errno, $error) 
	{
		$this->_errno = $errno;
		$this->_error = $error;	
	}
	
	public function errno() 
	{
		return $this->_errno;	
	}

	public function error() 
	{
		return $this->_error;
	}
}




?>

[源代码打包下载]




网友评论    (发表评论)

共1 条评论 1/1页

发表评论:

评论须知:

  • 1、评论每次加2分,每天上限为30;
  • 2、请文明用语,共同创建干净的技术交流环境;
  • 3、若被发现提交非法信息,评论将会被删除,并且给予扣分处理,严重者给予封号处理;
  • 4、请勿发布广告信息或其他无关评论,否则将会删除评论并扣分,严重者给予封号处理。


扫码下载

加载中,请稍后...

输入口令后可复制整站源码

加载中,请稍后...