大淘客的index.php,index.php · zenozhengs/大淘客CMS底部菜单修改版 - Gitee.com

/*

* 请勿使用windows下的记事本修改本文件。推荐使用 notepad++

* * 版本v2.6

* 1.自动选择最优服务api地址返回数据

* 2.请求时添加压缩返回

* * 版本v2.5

* 1.500页面优化

* 2.数据请求增加重试,减少请求失败

* 版本v2.4

* 新增加cdn节点检测

* 版本 v2.3

* 1.500页面展示

* 版本 v2.2

* 1.增加mbstring检测

* *版本 v2.1

* 1.增加cache检测

* 2.增加显示debug信息限制

* 版本 v2.0

* 1.documentUrl 做兼容解决部分用户二级目录报错

* 2.增加debug信息方便为用户定位错误

*

* 版本 v1.1.0

* 升级日志:

* 1、添加自动更新

* 2、修正缓存的BUG

* 3、添加自动清理cache

* 4、实现http code的转发

*

* 版本 v1.0.1

* 升级日志:

* 1、修正第一次无法打开,需要刷新才能打开的BUG

* 2、添加对二级目录的支持

* 3、添加对非index.php文件名的支持。

*

* */

$appId = '1409274'; // 站点的APPID (请勿修改和泄漏)

$appKey = 'E2D55BEFF32D237AA88714253CF3EB2B';// 站点的APP KEY(请勿修改和泄漏)

$proxyVersion = 16;

//===============================================================================

//===============================================================================

//===============================================================================

//================ 请勿修改以下程序 ====================

//===============================================================================

//===============================================================================

//===============================================================================

if (!defined("DTK_TYPE")) {

define("DTK_TYPE", true);

}

$test_env = strrpos(@$_SERVER['HTTP_USER_AGENT'], 'test') === false ? false : true;

$requestUrl = @$_SERVER["REQUEST_URI"];

$documentUrl = @$_SERVER["PHP_SELF"];

if (empty($documentUrl)) {

$documentUrl = @$_SERVER["SCRIPT_NAME"];

}

if (empty($documentUrl)) {

$documentUrl = @$_SERVER["DOCUMENT_URI"];

}

if (empty($documentUrl)) {

$documentUrl = $requestUrl;

$str_pos = strpos($requestUrl, '?');

if ($str_pos !== false) {

$documentUrl = substr($requestUrl, 0, $str_pos);

}

}

$file = @$_SERVER["DOCUMENT_ROOT"] . $documentUrl . 'req.php';

$file2 = dirname(__FILE__) . DIRECTORY_SEPARATOR . $documentUrl . 'req.php';

if (file_exists($file)) {

require_once $file;

exit;

} elseif (file_exists($file2)) {

require_once $file2;

exit;

} else {

header("Content-type: text/html; charset=utf-8");

echo 'cms 版本:' . $proxyVersion . '
';

echo 'php 版本:' . PHP_VERSION . '
';

if ($test_env) {

echo 'CMS-HOST: ' . @$_SERVER["HTTP_HOST"] . '
';

echo 'DOCUMENT-URL: ' . $documentUrl . '
';

echo 'REQUEST-URL: ' . $requestUrl . '
';

}

$run_check = true;

if (function_exists('curl_init')) {

echo 'curl 已经开启 ' . '
';

} else {

$run_check = false;

echo 'curl 未开启,请先开启curl扩展,否则无法运行,请联系您的空间或者服务器提供商' . '
';

}

if (function_exists('mb_substr')) {

echo 'mbstring 已经开启 ' . '
';

} else {

$run_check = false;

echo 'mbstring 未开启,请先开启mbstring扩展,否则无法运行' . '
';

}

if( $run_check == false){

exit;

}

$test_dir = dirname(__FILE__) . DIRECTORY_SEPARATOR . 'cache';

$test_file = $test_dir . '/test.txt';

if (!is_dir($test_dir)) {

mkdir($test_dir);

}

file_put_contents($test_file, 'test');

if (file_exists($test_file)) {

echo 'cache:有效
';

} else {

echo 'cache 无效,请先设置目录读写权限,请联系您的空间或者服务器提供商' . '
';

exit;

}

echo '......正在下载文件.......
';

$httpHelper = new HttpHelperes($appId, $appKey, $proxyVersion, $documentUrl);

$s = $httpHelper->upgrade();

if ($s === false) {

echo '......文件下载失败,请刷新页面重试,如果还是失败请联系客服.......
';

echo '......如果是香港或者国外虚拟主机服务器,请联系您的主机供应商优化网络CDN.......
';

if (function_exists('gethostbyname')) {

echo 'www.dataoke.com --CDN 节点 ---' . gethostbyname("www.dataoke.com");

echo '......可以尝试修改服务器DNS 然后ping 以上网址测试是否正常.......
';

}

} else {

echo '......文件下载成功.......
';

echo '------5秒后跳转----------
';

echo '------或者点击立即跳转----------
';

echo '';

exit;

}

}

class HttpHelperes

{

protected $appId;

protected $key;

protected $documentUrl;

protected $proxyVersion;

protected $upgradeUrl = "http://www.dataoke.com/pmc/upgrade.html";

public $httpCode = 200;

public function __construct($appId, $key, $proxyVersion, $documentUrl)

{

$this->appId = $appId;

$this->key = $key;

$this->proxyVersion = $proxyVersion;

$this->documentUrl = $documentUrl;

}

/**

* @param $host

* @param bool $re_try

* @return bool|mixed

*/

public function getIp($host, $re_try = false)

{

$output = '';

global $test_env;

try {

$header=array();

$host = str_replace('http://', '', $host);

if (strlen($host) != (strpos($host, '.com') + 4)) {

$host = substr($host, 0, strpos($host, '.com') + 4);

}

if ($re_try) {

$url = 'http://39.106.70.132:80/d?dn=' . $host;

$header[] = 'Host: dighttpd.dataoke.com';

} else {

$url = 'http://crab.qingcdn.com/d?dn='.$host;

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_TIMEOUT, 10);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

curl_setopt($ch, CURLOPT_HTTPGET, TRUE);

curl_setopt($ch, CURLOPT_URL, $url);

if(!empty($header)){

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

}

$output = curl_exec($ch);

$output = json_decode($output, true);

} catch (Exception $e) {

if ($test_env) {

var_dump($e->getMessage());

}

}

if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'getip') {

var_dump($output);

var_dump($url);

}

return !empty($output['data'][$host]['ips']) ? $output['data'][$host]['ips'] : ($re_try ? false : $this->getIp($host, true));

}

/**

* @param $url

* @param $requestUrl

* @param array $param

* @param string $method

* @param bool $isAjax

* @param string $cookie

* @param string $refer

* @param null $userAgent

* @param bool $checkNewVersion

* @return string

*/

public function getHtml($url, $requestUrl, $param = array(), $method = 'GET', $isAjax = null, $cookie = NULL, $refer = null, $userAgent = null, $checkNewVersion = true, $re_try = true)

{

if (strpos($requestUrl, 'auth') !== false) {

$url .= '/auth';

}

$ch = curl_init();

curl_setopt($ch, CURLOPT_HEADER, 1);

empty($refer) && $refer = @$_SERVER['HTTP_REFERER'];

$ua = $userAgent;

empty($ua) && $ua = (!empty($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '-');

$curl_time = $re_try == true ? 40 : 120;

curl_setopt($ch, CURLOPT_TIMEOUT, $curl_time);

curl_setopt($ch, CURLOPT_USERAGENT, $ua);

curl_setopt($ch, CURLOPT_REFERER, $refer);

curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 0);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$header = array(

'APPID: ' . $this->appId,

'APPKEY: ' . $this->key,

'PROXY-VERSION: ' . $this->proxyVersion,

'CMS-HOST: ' . @$_SERVER["HTTP_HOST"],

'DOCUMENT-URL: ' . $this->documentUrl,

'REQUEST-URL: ' . $requestUrl,

'CMS-CONNECTION: ' . (!empty($_SERVER["HTTP_CONNECTION"]) ? $_SERVER["HTTP_CONNECTION"] : '-'),

'CMS-ACCEPT-ENCODING: ' . (!empty($_SERVER["HTTP_ACCEPT_ENCODING"]) ? $_SERVER["HTTP_ACCEPT_ENCODING"] : '-'),

);

$cdn_ip = $this->getIp($url);

if ($re_try && $cdn_ip !== false) {

$url = str_replace('http://', '', $url);

$check_url_show = false;

if (strpos($url, '/pmc/upgrade.html') !== false) {

$check_url_show = true;

$url = str_replace('/pmc/upgrade.html', '', $url);

}

$header[] = 'Host: ' . $url;

if ($check_url_show) {

$url = $cdn_ip[0] . '/pmc/upgrade.html';

} else {

$url = $cdn_ip[0];

}

}

curl_setopt($ch, CURLOPT_HTTPHEADER, $header);

if (empty($cookie)) {

$cookie = $_COOKIE;

}

if (is_array($cookie)) {

$cookie = http_build_query($cookie,'',";");

}

if (!empty($cookie)) {

curl_setopt($ch, CURLOPT_COOKIE, $cookie);

}

curl_setopt($ch, CURLOPT_HTTPGET, TRUE);

if ($param) {

$urlInfo = parse_url($url);

$q = array();

if (isset($urlInfo['query']) && !empty($urlInfo['query'])) {

parse_str($urlInfo['query'], $q);

}

$q = array_merge($q, $param);

$cUrl = sprintf('%s://%s%s%s%s',

$urlInfo['scheme'],

$urlInfo['host'],

isset($urlInfo['port']) ? ':' . $urlInfo['port'] : '',

isset($urlInfo['path']) ? $urlInfo['path'] : '',

count($q) ? '?' . http_build_query($q) : '');

curl_setopt($ch, CURLOPT_URL, $cUrl);

} else {

curl_setopt($ch, CURLOPT_URL, $url);

}

$r = curl_exec($ch);

$headerSize = curl_getinfo($ch, CURLINFO_HEADER_SIZE);

$header = mb_substr($r, 0, $headerSize);

$r = mb_substr($r, $headerSize);

$this->httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

curl_close($ch);

unset($ch);

$headers = explode("\r\n", $header);

$expires = time() + 300;

foreach ($headers as $h) {

$h = trim($h);

if (empty($h) || preg_match('/^(HTTP|Connection|EagleId|Server|X\-Powered\-By|Date|Transfer\-Encoding|Content)/i', $h)) {

continue;

}

if (strpos($h, 'expires:') !== false) {

$temp_arr = explode(':', $h);

if (!empty($temp_arr[1]) && is_numeric(trim($temp_arr[1]))) {

$expires = intval(trim($temp_arr[1]));

}

}

if (strpos($h, 'Cookie') !== false) {

$h = explode(':', $h);

if (!empty($h[1])) {

$h = explode('=', $h[1]);

if (!empty($h[0]) && !empty($h[1])) {

@setcookie(trim($h[0]), trim($h[1]), $expires);

}

}

} else {

header($h);

}

}

//debug

global $test_env;

if ($test_env && isset($_GET['debug']) && $_GET['debug'] == 'res') {

var_dump($r);

exit;

}

return $re_try == true && empty($r) ? $this->getHtml($url, $requestUrl, $param, $method, $isAjax, $cookie, $refer, $userAgent, $checkNewVersion, false) : $r;

}

public function php_self()

{

try {

$php_self = substr(@$_SERVER['PHP_SELF'], strrpos(@$_SERVER['PHP_SELF'], '/') + 1);

} catch (Exception $e) {

$php_self = '';

}

return $php_self;

}

public function upgrade()

{

$php = $this->getHtml($this->upgradeUrl, '', array(), 'GET', false, null, null, null, false);

if ($php === false || strlen($php) < 500) {

echo ' 请求服务器读取数据失败,请确认服务器网络是否稳定,或者联系服务器供应商修改优化DNS配置' . '
';

return false;

}

$php = @json_decode($php, true);

if (empty($php['appid']) || empty($php['appkey']) || empty($php['content']) || $php['appid'] !== $this->appId) {

echo ' 请求服务器读取数据失败,请确认文件没有被修改,或者重新下载index.php文件上传' . '
';

return false;

}

$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . $this->documentUrl;

if (!file_exists($file)) {

$file_name = $this->php_self();

$file = dirname(__FILE__) . DIRECTORY_SEPARATOR . $file_name;

}

$result = file_put_contents($file, $php['content'], LOCK_EX);

if ($result === false) {

$file .= 'req.php';

$result = file_put_contents($file, $php['content'], LOCK_EX);

}

if ($result == false) {

echo ' 写文件失败,请先设置目录读写权限,保证WEB服务器(nginx ,apache等)的帐号和PHP,对该目录有读写操作权限' . '
';

}

return $result;

}

}

一键复制

编辑

Web IDE

原始数据

按行查看

历史

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/498340.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Gartner公布2018十大技术发展趋势 2025年AI重塑商业模式

来源&#xff1a; 智东西 摘要&#xff1a;智能数字格网将作为未来数字业务和生态系统的基础&#xff0c;IT领导者们在制定创新性决策时必须将其考虑在内&#xff0c;否则将面临巨大风险。 近日&#xff0c;全球领先的信息技术研究和顾问公司Gartner公布了将在2018年对大部分企…

php apc 失效时间,PHP APC无法正常工作

我刚刚用PHP Handler FastCGI安装了APC.但似乎Cache永远不会起作用.if(($tapc_fetch(key_4321))FALSE){$ttime();apc_add(key_4321, $t, 24*60*60);}echo $t;几乎每次我运行它我都有不同的时间戳.只有几次它仍然是相同的结果.可能的原因是什么&#xff1f;我正在使用PHP版本5.3…

java调用三汇语音卡,三汇语音卡

底板型号总线通道交换Asterisk传真资源总线SHT-2B/USB???? (含模块)USB2---SHT-4B/USB?? (含模块)USB4---SHT-4B/USB/REC(含模块)①USB4---SHT-8B/PCIPCI8-√-SHT-8C/PCI/EC主要用于IP呼叫中心PCI8-√-SHT-16B-CT/PCIPCI16H.100√-SHT-16C-CT/PCI/EC? 回拨抵消功能PCI-X…

全球研发开支排名:亚马逊第一,BATJ排不上号!

来源&#xff1a; 全球人工智能 摘要&#xff1a;虽然亚马逊可能是研发领导者&#xff0c;但是截至目前缺乏关于它的准确数字。 这图是全球全球研发开支排名和相关数据&#xff1a; 全球研发开支领导者 对于旨在内部进行创新的那些公司来说&#xff0c;资金需要投入到公司收益…

matlab 怎么话3维图,用matlab画三维图形

将plot3d放在matlab根目录下&#xff0c;然后在窗口处输入椭球的一般方程就行了。注意要把等式右边的移过来&#xff0c;让右边为0.椭球和平面源代码&#xff1a;function plot3d(varargin)if ishandle(varargin{1})cax varargin{1};axes(cax);args{:} varargin{2:end};elsear…

任正非最新讲话透露:华为在加快开发统一的人工智能平台

来源&#xff1a;华为心声社区 概要&#xff1a;华为在人工智能方面&#xff0c;最有条件&#xff0c;也最容易找到感觉的&#xff0c;无疑是在GTS&#xff08;全球技术服务&#xff09;领域。 华为在人工智能方面&#xff0c;最有条件&#xff0c;也最容易找到感觉的&#xf…

matlab m序列,m序列(M序列与m序列区别)

在伪随机序列中&#xff0c;什么是m序列和M序列&#xff1f;他们有什么区别&#xff1f;为什么一个大是。m是线形序列&#xff0c;优点是容易产生&#xff0c;自相关特性好&#xff0c;且是伪随机的。但是可供使用的跳频图案少&#xff0c;互相关特性不理想&#xff0c;又因它采…

Google智能生态链的演进路径

来源&#xff1a; 本翼资本CapitalWings 概要&#xff1a;谷歌作为全球最大的信息服务公司&#xff0c;自搜索引擎起家&#xff0c;现今已成为业务涵盖人工智能、智能家居、高速网络、医疗服务、生命科学、无人驾驶等前沿科技的Alphabet公司。 谷歌作为全球最大的信息服务公司&…

mysql创建约束时的约束名称,MySQL唯一键约束

1、唯一键约束特点&#xff1a;(1)一个表可以有多个唯一键约束(2)唯一键约束意味着&#xff0c;唯一&#xff0c;可以为NULL(3)唯一键的约束名可以自己指定&#xff0c;也可以默认&#xff0c;如果默认的话&#xff0c;一般如果单列唯一&#xff0c;默认就是列名&#xff0c;如…

asp java.class,以下不属于Java程序结构文件的是()。A.asp文件B.java文件C.class文件D.jar文件...

在二进制中&#xff0c;1001101010。化学工业是我国国民经济的重要基础产业。制约预防功能差分格式名词解释下列划分旅游市场的标准中&#xff0c;属于微观标准的是()。痹证四肢小关节疼痛、肿胀、灼热者可选用()患者颈后初起如粟米样丘疹&#xff0c;继而增大&#xff0c;坚硬…

博世投资张翠波:自动驾驶需要突破芯片、传感器、深度学习算法等关键技术

来源&#xff1a;36氪 概要&#xff1a;基于博世的很多发现&#xff0c;整个无人驾驶的时间表可能如下&#xff1a;Level3级别的自动驾驶可能会在2020年后&#xff1b;Level4量产的时间是2020到2023年。 全球智能驾驶行业风起云涌&#xff0c;大量资本、技术、人才不断涌入。在…

php选择排序法最后交换,php 四种基础算法 ---- 选择排序法

2. 选择排序法&#xff1a;选择排序法思路&#xff1a; 每次选择一个相应的元素&#xff0c;然后将其放到指定的位置代码&#xff1a;function select_sort($arr) {//实现思路 双重循环完成&#xff0c;外层控制轮数&#xff0c;当前的最小值。内层 控制的比较次数//$i 当前最小…

解密DNA机器人“巨大的一小步”:血液循环中精准送达药物

来源&#xff1a;中国青年报 概要&#xff1a;作为纳米前沿科技快速发展的产物&#xff0c;加州理工大学“钱实验室”的DNA机器人步子又小又缓慢。 作为纳米前沿科技快速发展的产物&#xff0c;加州理工大学“钱实验室”的DNA机器人步子又小又缓慢。它走一步需要5分钟&#xff…

旷视科技完成4.6亿美元C轮融资,打破商汤4.1亿美元单轮融资记录

来源&#xff1a;亿欧 概要&#xff1a;本轮融资很可能会被用于加快在城市综合大脑及手机智能领域的技术落地&#xff0c;打造智慧城市。 2017年10月31日消息&#xff0c;人工智能公司旷视科技&#xff08;Face&#xff09;已于近期完成C轮融资&#xff0c;本轮融资金额约为4.6…

php伪静态不支持中文,wordpress伪静态如何支持中文(目前不支持分类目录中文)...

自定义结构可以用你自己喜欢的&#xff0c;比如可以只用用“/%post_id%.html”&#xff0c;这样的访问地址就会是“http://xxx.com/id.html”&#xff1b;当然你也可以用“/%post_id%”&#xff0c;这样的访问地址就会是“http://xxx.com/id/”等等&#xff0c;后缀名“html”也…

MIT与FAIR提出「mixup」,利用数据和标签的随机线性插值提高神经网络的健壮性

来源&#xff1a; 雷克世界 摘要&#xff1a;麻省理工学院&#xff08;MIT&#xff09;与Facebook人工智能研究院&#xff08;FAIR&#xff09;提出了一种能够构建虚拟训练样本的方法——mixup&#xff0c;提高了神经网络的健壮性。 近日&#xff0c;麻省理工学院&#xff08;M…

matlab编程实现levinson算法,音频处理Levinson-Durbin算法实验报告

音视频信号处理实验报告一、实验目地&#xff1a;(1)、理解Levinson-Durbin 算法的迭代过程&#xff1b;(2)、学会使用MATLAB 编写Levinson-Durbin 算法函数。二、实验内容&#xff1a;Levinson-Durbin 算法的编程仿真。三、实验原理&#xff1a;1、线性预测分析的基本原理由于…

matlab 未定义mat2gray,matlab中mat2gray函数用法

mat2gray是一个计算机函数&#xff0c;功能是实现图像矩阵的归一化操作。 所谓”归一化”就是使矩阵的每个元素的值都在0和1之间。该函数在数字图像处理中经常用到。函数简介函数功能: 实现图像矩阵的归一化操作。[1] 所谓”归一化”就是使矩阵的每个元素的值都在0和1之间。该函…

Face++印奇:从无人问津到融资4.6亿美金|纪录影片

来源&#xff1a; 创新工场 摘要&#xff1a;个人爱好和使命感&#xff0c;是创业最本质的一个动力。对于印奇来说&#xff0c;创业者的身份&#xff0c;只是实现这样一个大行业和使命的阶段性方式&#xff0c;如果有其他途径能够把人工智能做的更好&#xff0c;他也许会走上另…

matlab 建立ctruct,扩频通信系统及MATLAB仿真1

1.1 扩频通信的定义所谓扩展频谱通信,可简单表述如下:“扩频通信技术是一种信息传输方式,其信号所占有的频带宽度远大于所传信息必需的最小带宽;频带的扩展是通过一个独立的码序列来完成,用编码及调制的方法来实现的,与所传信息数据无关;在接收端则用同样的码进行相关同步接收…