百度网盘的外链代理
[文件] index.php
<?php // STARTOFFILE // URL的正则 $url = '/http:\/\/pan\.baidu\.com.*(?:shareid=(\d+)&(?:uk=(\d+?)))/Uis'; // 文件夹的正则 $folder = '/\/(get|show|folder)\/(\d+)\/(\d+)\/(.+)(?:\/(\d+)[\/]((?:.+)\.(?:.+?))|\/(\d+?)[\/]{0,1}|\/)/Uis'; // 单文件的正则 $file = '/\/(get|show)\/(\d+)\/(\d+?)(?:[\/]((?:.+)\.(?:.+?))|[\/]{0,1})/Uis'; //文件夹指定文件名的正则 $fileName = '/\/(file)\/(\d+)\/(\d+)\/(.+)\/(.+?)/Uis'; //文件夹指定文件名的正则(扩展:为图片是增加尺寸,质量等参数) $picName = '/\/pic\/(\d+)(?#shareid)\/(\d+)(?#uk)\/(.+)(?#path)\/(c\d+?)(u\d+?)q(\d+?)(?#图片参数)\/(.+?)(?#文件名)/Uis'; $preg=array('url'=>$url,'folder'=>$folder,'file'=>$file,'picName'=>$picName,'fileName'=>$fileName); class BaiduPanProxy{ private $uk; private $shareid; private $path; //文件夹路径 private $file; //指定输出为图片时的文件名 private $size; //指定输出为图片时的尺寸 private $method; //输出方法 private $folderIndex; //文件夹的文件索引号 private $folder;//文件夹的json内容 private $url=''; private $preg=array(); // public $trueLinkPreg='|(http:[\\\/]{2,6}www\.baidupcs\.com[\\\/]{1,3}file[\\\/]{1,3}.*)\\\"|U'; //已失效 public $trueLinkPreg='|(http:[\\\/]{2,6}d\.pcs\.baidu\.com[\\\/]{1,3}file[\\\/]{1,3}.*)\\\"|U'; public function __construct($url,$preg) { $this->url = $url; $this->preg = $preg; } private function parseUrl(){ foreach ($this->preg as $k=>$value) { if(0 != preg_match ( $value, $this->url, $match )){ switch ($k) { case 'url': list ( , $this->shareid, $this->uk) = $match; $this->method='get';//此情况下默认是get,不能自定义 $this->matchBy='url'; break; case 'folder': if(8 == count ( $match )) // 文件夹,不带文件名 list ( , $this->method, $this->shareid, $this->uk, $this->path,,,$this->folderIndex) = $match; if(5 == count ( $match )) // 文件夹,遍历 list ( , $this->method, $this->shareid, $this->uk, $this->path) = $match; if(7 == count ( $match )) // 文件夹,带文件名 list ( , $this->method, $this->shareid, $this->uk, $this->path,$this->folderIndex) = $match; $this->folderIndex=$this->folderIndex-1; $this->matchBy='folder'; // var_dump($match);exit(); break; case 'file': list ( , $this->method,$this->shareid, $this->uk) = $match; $this->matchBy='file'; break; case 'picName': list ( , $this->shareid, $this->uk, $this->path, $c,$u,$q,$this->file) = $match; $this->size='size='.$c.'_'.$u.'&quality='.$q; $this->file=urldecode($this->file); $this->matchBy='picName'; break; case 'fileName': list ( , ,$this->shareid, $this->uk, $this->path,$this->file) = $match; $this->file=urldecode($this->file); $this->matchBy='fileName'; break; } return $this; } } if(!$match) $this->error();//匹配不到任何正确的参数则退出 } private function parseFolder($url){ $html=file_get_contents($url); return json_decode($html,true); } private function searchFolder(){ $url = "http://pan.baidu.com/share/list?dir=" . $this->path . "&shareid=" . $this->shareid . "&uk=" . $this->uk . "&"; $this->json=$this->parseFolder($url); if(! is_array($this->json)) $this->error(); } private function getFolderIndex($list){ foreach ($list as $k=>$v) { if(strtolower($v['server_filename'])==strtolower($this->file) )return $k; } } private function digFolder($path = '', $shareid = '', $uk = ''){ $url = "http://pan.baidu.com/share/list?dir=" . $path . "&shareid=" . $shareid . "&uk=" . $uk . "&"; $this->json=$this->parseFolder($url); if(! is_array($this->json)) $this->error(); foreach ( $this->json ['list'] as $arr ) { if (1 == $arr ['isdir']) $this->digFolder ( urlencode ( $arr ['path'] ), $shareid, $uk ); else $this->str .= "<a href=\"" . $arr ['dlink'] . "\">" . $arr ['server_filename'] . "</a><br />"; } return $this->str; } private function getRealLink(){ if(!$this->method){//如果没有方法,只有输入真实文件名或输出可调质量图片两种方法 $this->searchFolder(); $this->folderIndex=$this->getFolderIndex($this->json['list']); if($this->size){ //调节图片输出质量 $this->realLink=preg_replace("/size=c\d+_u\d+&quality=\d+/", $this->size, $this->json['list'][$this->folderIndex]['thumbs']['url3']); }else{ $this->realLink=$this->json['list'][$this->folderIndex]['dlink']; } }elseif ('folder' == $this->method) { $this->realLink = $this->digFolder($this->path,$this->shareid ,$this->uk); }else{ if(!$this->path){ $url = "http://pan.baidu.com/share/link?shareid=" . $this->shareid . "&uk=" . $this->uk; $html = file_get_contents ( $url ); if (0 == preg_match ( $this->trueLinkPreg, $html, $url )) $this->error(); $_string = array ("replace" => Array ("&", '\\' ), "string" => Array ("&", "" ) ); // 替换转义字符 $this->realLink = str_ireplace ( $_string ["replace"], $_string ["string"], $url [1] ); }elseif ($this->path) { $this->searchFolder(); $this->realLink=$this->json['list'][$this->folderIndex]['dlink']; } } } public function haveFun(){ if ($this->checkNew ( $this->localVersion, $this->checkFrequency )) $this->updateFile ( $this->localVersion ); $this->parseUrl()->getRealLink(); if('show'==$this->method || 'folder'==$this->method) echo $this->realLink; else header ( "Location:" . $this->realLink ); } private function error(){ die('oops!! 获取失败诶~建议到<a href="https://github.com/tofuliang/baidu-pan-proxy" target="_blank">http://www.php.cn/;/a>了解了解吧~'); } private function checkNew($localVersion, $checkFrequency) { $lastCheck = ( int ) @file_get_contents ( __DIR__ . "/.lastcheck" ); if (time () - $lastCheck > $checkFrequency) { @file_put_contents ( __DIR__ . "/.lastcheck", time () ); $serverVersion = ( double ) @file_get_contents ( "https://raw.github.com/tofuliang/baidu-pan-proxy/master/version" ); if ($serverVersion - ( double ) $localVersion > 0) return true; return false; } return false; } public function updateFile($localVersion) { $new = ( string ) @file_get_contents ( "https://raw.github.com/tofuliang/baidu-pan-proxy/master/index.php" ); if (strpos ( $new, 'STARTOFFILE' ) && strpos ( $new, 'ENDOFFILE' )) { copy ( __FILE__, __FILE__ . $localVersion ) && @file_put_contents ( __FILE__, $new ) && exit ( "代理程序已更新到新版" ); } } } $link = new BaiduPanProxy($_SERVER ["QUERY_STRING"],$preg); $link->localVersion = '0.6'; $link->checkFrequency = 86400; // 每隔多少秒到服务器检测更新,默认是一天 $link->haveFun(); //ENDOFFILE

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

AI Hentai Generator
Menjana ai hentai secara percuma.

Artikel Panas

Alat 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

Dalam bab ini, kita akan memahami Pembolehubah Persekitaran, Konfigurasi Umum, Konfigurasi Pangkalan Data dan Konfigurasi E-mel dalam CakePHP.

PHP 8.4 membawa beberapa ciri baharu, peningkatan keselamatan dan peningkatan prestasi dengan jumlah penamatan dan penyingkiran ciri yang sihat. Panduan ini menerangkan cara memasang PHP 8.4 atau naik taraf kepada PHP 8.4 pada Ubuntu, Debian, atau terbitan mereka

Untuk bekerja dengan tarikh dan masa dalam cakephp4, kami akan menggunakan kelas FrozenTime yang tersedia.

Untuk mengusahakan muat naik fail, kami akan menggunakan pembantu borang. Di sini, adalah contoh untuk muat naik fail.

Dalam bab ini, kita akan mempelajari topik berikut yang berkaitan dengan penghalaan ?

CakePHP ialah rangka kerja sumber terbuka untuk PHP. Ia bertujuan untuk menjadikan pembangunan, penggunaan dan penyelenggaraan aplikasi lebih mudah. CakePHP adalah berdasarkan seni bina seperti MVC yang berkuasa dan mudah difahami. Model, Pandangan dan Pengawal gu

Kod Visual Studio, juga dikenali sebagai Kod VS, ialah editor kod sumber percuma — atau persekitaran pembangunan bersepadu (IDE) — tersedia untuk semua sistem pengendalian utama. Dengan koleksi sambungan yang besar untuk banyak bahasa pengaturcaraan, Kod VS boleh menjadi c

Pengesah boleh dibuat dengan menambah dua baris berikut dalam pengawal.
