<?php function mtrand() { $str = 'ABCDEFGHIGKLMNOPQRSTUVWXYZ123456789'; $str = str_shuffle($str); $str = substr($str, 0, 8); return $str; } function getMulu() { $date = date('Y/m/d/', time()); return $date; } function shortenSinaUrl($long_url) { $apiKey = '1252439662'; $apiUrl = 'http://api.t.sina.com.cn/short_url/shorten.json?source=' . $apiKey . $long_url; $curlObj = curl_init(); curl_setopt($curlObj, CURLOPT_URL, $apiUrl); curl_setopt($curlObj, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlObj, CURLOPT_SSL_VERIFYPEER, 0); curl_setopt($curlObj, CURLOPT_HEADER, 0); curl_setopt($curlObj, CURLOPT_HTTPHEADER, array( 'Content-type:application/json' )); $response = curl_exec($curlObj); curl_close($curlObj); $json = json_decode($response); $arr = array(); foreach ($json as $v) { $arr[] = $v->url_short; } return $arr; } function downfile($fileurl) { ob_start(); $filename = $fileurl; $date = date("Ymd-H:i:m"); header("Content-type: application/octet-stream "); header("Accept-Ranges: bytes "); header("Content-Disposition: attachment; filename= {$date}.txt"); $size = readfile($filename); header("Accept-Length: " . $size); } set_time_limit(0); if (!empty($_POST['submit'])) { if ($_FILES['file']['error'] == 0) { if ($_FILES['file']['type'] == 'text/plain') { $baseurl = dirname(__FILE__)."/upload/"; $url = $baseurl . getMulu(); if (!is_dir($url)) { mkdir($url, 0777, true); } $file_dizhi = $url . mtrand(); $rs = move_uploaded_file($_FILES["file"]["tmp_name"], $file_dizhi.'.txt'); if ($rs) { //读取文件 $file = fopen($file_dizhi.'.txt', "r"); $xieru_txt = ''; $num = 0; $temp_url = ''; while (!feof($file)) { $temp_url .= '&url_long='.urlencode(trim(fgets($file))); $num++; if($num%20 == 0){ $rs = shortenSinaUrl($temp_url); $xieru_txt .= implode("\r\n", $rs); $xieru_txt .= "\r\n"; $temp_url = ''; } } fclose($file); file_put_contents($file_dizhi.'_xieru.txt', $xieru_txt); downfile($file_dizhi.'_xieru.txt'); exit; } } else { echo '请上传txt文件'; } } else { echo '上传失败'; } } ?> <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>短网址服务</title> </head> <body> <form action="" method="post" enctype="multipart/form-data"> <input type="file" name="file"> <input type="submit" name="submit" value="提交"> </form> </body> </html>