七牛fetch
Jun 07, 2016 am 11:37 AMfetch ak sk
/*
*
* @desc URL安全形式的base64编码
* @param string $str
* @return string
*/
function urlsafe_base64_encode($str){
$find = array("+","/");
$replace = array("-", "_");
return str_replace($find, $replace, base64_encode($str));
}
/**
* generate_access_token
*
* @desc 签名运算
* @param string $access_key
* @param string $secret_key
* @param string $url
* @param array $params
* @return string
*/
function generate_access_token($access_key, $secret_key, $url, $params = ''){
$parsed_url = parse_url($url);
$path = $parsed_url['path'];
$access = $path;
if (isset($parsed_url['query'])) {
$access .= "?" . $parsed_url['query'];
}
$access .= "\n";
if($params){
if (is_array($params)){
$params = http_build_query($params);
}
$access .= $params;
}
$digest = hash_hmac('sha1', $access, $secret_key, true);
return $access_key.':'.urlsafe_base64_encode($digest);
}
function send($url, $header = '') {
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER,1);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
// curl_setopt($curl, CURLOPT_POST, 1);
$con = curl_exec($curl);
if ($con === false) {
echo 'CURL ERROR: ' . curl_error($curl);
} else {
return $con;
}
}
//七牛抓取图片
function fetch($url,$bucket = 'frakin'){
//后缀名
$extension = substr($url, strrpos($url, '.') + 1);
$fetch = urlsafe_base64_encode($url);
$time = date("Ymd");
$uniqid = uniqid();
$key = 'image_'.$time.'_'.$uniqid.'.'.$extension;
$enurl = $bucket.':'.$key;
$to = urlsafe_base64_encode($enurl);
$url = 'http://iovip.qbox.me/fetch/'. $fetch .'/to/' . $to;
$access_key = '';
$secret_key = '';
$access_token = generate_access_token($access_key, $secret_key, $url);
$header[] = 'Content-Type: application/json';
$header[] = 'Authorization: QBox '. $access_token;
$con = send('iovip.qbox.me/fetch/'.$fetch.'/to/'.$to, $header);
return "http://dn-".$bucket.".qbox.me/image_".$time.'_'.$uniqid.'.'.$extension;
}
//fetch('http://www.baidu.com/image/20150806/1438832727201450.png');
?>
AD:真正免费,域名+虚机+企业邮箱=0元

Artikel Panas

Alat panas Tag

Artikel Panas

Tag artikel panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

Ketahui tentang contoh kod pengenalan untuk pengaturcaraan Python

Pembolehubah PHP dalam tindakan: 10 contoh penggunaan sebenar

Cara menggunakan PHP untuk menulis kod fungsi pengurusan inventori dalam sistem pengurusan inventori

Daripada pemula hingga mahir: Pelaksanaan kod struktur data yang biasa digunakan dalam bahasa Go

Java melaksanakan kod isihan gelembung mudah

Contoh pengaturcaraan bahasa Go: contoh kod dalam pembangunan web

Panduan Sambungan Pengkomputeran Tepi Awan Huawei: Contoh kod Java untuk melaksanakan antara muka dengan cepat

Panduan dan Contoh: Belajar untuk melaksanakan algoritma isihan pemilihan dalam Java
