WordPress防红系统跳转页面和引导跳转页面gophp-html源码美化版

本文主要是介绍WordPress防红系统跳转页面和引导跳转页面gophp-html源码美化版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

源码介绍

   WordPress防红系统跳转页面和引导跳转页面gophp-html源码美化版,双端自适应。自动文章内的外链加入加密的跳转链接,其他网站也可以用。

使用教程:

1、网站根目录新建go文件夹

2、go目录里新建index.php

3、index.php里的代码如下:

<?php
/*自动跳转页面
*@copyright (c) Emlog All Rights Reserved */
//自定义跳转地址
$cars = array(array("qcloud",'https://curl.qcloud.com/ogHI5jPB'),array("aliyun",'https://www.aliyun.com/minisite/goods?userCode=y7af6jip'),);if(strlen($_SERVER['REQUEST_URI']) > 384 ||strpos($_SERVER['REQUEST_URI'], "eval(") ||strpos($_SERVER['REQUEST_URI'], "base64")) {@header("HTTP/1.1 414 Request-URI Too Long");@header("Status: 414 Request-URI Too Long");@header("Connection: Close");@exit;
}
//通过QUERY_STRING取得完整的传入数据,然后取得url=之后的所有值,兼容性更好
$t_url = htmlspecialchars(preg_replace('/^url=(.*)$/i','$1',$_SERVER["QUERY_STRING"]));//此处可以自定义一些特别的外链,不需要可以删除以下5行
foreach($cars as $k=>$val){if($t_url==$val[0] ) {$t_url =  $val[1];$t_vip = 1;}
}//数据处理
if(!empty($t_url)) {//判断取值是否加密if ($t_url == base64_encode(base64_decode($t_url))) {$t_url =  base64_decode($t_url);}//对取值进行网址校验和判断preg_match('/^(http|https|thunder|qqdl|ed2k|Flashget|qbrowser):\/\//i',$t_url,$matches);
if($matches){$url=$t_url;$title='页面加载中,请稍候...';
} else {preg_match('/\./i',$t_url,$matche);if($matche){$url='http://'.$t_url;$title='页面加载中,请稍候...';} else {$url = 'http://'.$_SERVER['HTTP_HOST'];$title='参数错误,正在返回首页...';}
}
} else {$title = '参数缺失,正在返回首页...';$url = 'http://'.$_SERVER['HTTP_HOST'];
}
?>
<html><head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no">
<meta name="robots" content="noindex, nofollow" />
<noscript><meta http-equiv="refresh" content="1;url='<?php echo $url;?>';"></noscript>
<link rel="icon" type="image/x-icon" href="https://www.cnzzzj.com/wp-content/uploads/2020/09/favicon-1.ico">
<meta charset="UTF-8">
<!--[if IE 8]>
<style>
.ie8 .alert-circle,.ie8 .alert-footer{display:none}.ie8 .alert-box{padding-top:75px}.ie8 .alert-sec-text{top:45px}
</style>
<![endif]-->
<title><?php echo $title;?></title>
<style>
body {margin: 0;padding: 0;background: #E6EAEB;font-family: Arial, '微软雅黑', '宋体', sans-serif
}
.alert-box {display: none;position: relative;margin: 135px auto 0;padding: 150px 83px 22px;border-radius: 10px;background: #FFF;box-shadow: 5px 9px 17px rgba(102,102,102,0.75);width: 286px;color: #FFF;text-align: center
}
.alert-box p {margin: 0
}
.alert-circle {position: absolute;top: -50px;left: 111px
}
.alert-sec-circle {stroke-dashoffset: 0;stroke-dasharray: 735;transition: stroke-dashoffset 1s linear
}
.alert-sec-text {position: absolute;top: 11px;left: 190px;width: 76px;color: #000;font-size: 68px
}
.alert-sec-unit {font-size: 34px
}
.alert-body {margin: 35px 0
}
.alert-head {color: #242424;font-size: 28px
}
.alert-concent {margin: 25px 0 14px;color: #7B7B7B;font-size: 18px
}
.alert-concent p {line-height: 27px
}
.alert-btn {display: block;border-radius: 10px;background-color: #4AB0F7;height: 55px;line-height: 55px;width: 286px;color: #FFF;font-size: 20px;text-decoration: none;letter-spacing: 2px
}
.alert-btn:hover {background-color: #6BC2FF
}
.alert-footer {margin: 0 auto;height: 42px;width: 120px
}
.alert-footer-icon {float: left
}
.alert-footer-text {float: left;border-left: 2px solid #EEE;padding: 3px 0 0 5px;height: 40px;color: #0B85CC;font-size: 12px;text-align: left
}
.alert-footer-text p {color: #7A7A7A;font-size: 22px;line-height: 18px
}
@media screen and (max-width: 700px) {.alert-box{width: 180px;}.alert-circle{top: -80px;left: 60px;}.alert-sec-text {left: 145px;width: auto;font-size: 38px;}.alert-head {font-size: 18px;}.alert-box p {font-size: 16px;}    .alert-btn {width: auto;}
}
</style>
</head>
<body class="ie8" style="">
<div class="main"><div id="js-alert-box" class="alert-box" style="display:block"><svg class="alert-circle" width="234" height="234"><circle cx="117" cy="117" r="108" fill="#FFF" stroke="#43AEFA" stroke-width="17"></circle><circle id="js-sec-circle" class="alert-sec-circle" cx="117" cy="117" r="108" fill="transparent" stroke="#F4F1F1" stroke-width="18" transform="rotate(-90 117 117)"></circle><text class="alert-sec-unit" x="98" y="172" fill="#BDBDBD">秒</text></svg><div id="js-sec-text" class="alert-sec-text">3</div><div class="alert-body"><div id="js-alert-head" class="alert-head"><?php echo $title;?></div><div class="alert-concent"><p>外部网站,注意安全!</p></div><a id="js-alert-btn" class="alert-btn" href="<?php echo $url;?>">立即前往</a></div><div class="alert-footer clearfix"><svg width="46px" height="42px" class="alert-footer-icon"><circle fill-rule="evenodd" clip-rule="evenodd" fill="#7B7B7B" stroke="#DEDFE0" stroke-width="2" stroke-miterlimit="10" cx="21.917" cy="21.25" r="17"></circle><path fill="#FFF" d="M22.907,27.83h-1.98l0.3-2.92c-0.37-0.22-0.61-0.63-0.61-1.1c0-0.71,0.58-1.29,1.3-1.29s1.3,0.58,1.3,1.29 c0,0.47-0.24,0.88-0.61,1.1L22.907,27.83z M18.327,17.51c0-1.98,1.61-3.59,3.59-3.59s3.59,1.61,3.59,3.59v2.59h-7.18V17.51z M27.687,20.1v-2.59c0-3.18-2.59-5.76-5.77-5.76s-5.76,2.58-5.76,5.76v2.59h-1.24v10.65h14V20.1H27.687z"></path><circle fill-rule="evenodd" clip-rule="evenodd" fill="#FEFEFE" cx="35.417" cy="10.75" r="6.5"></circle><polygon fill="#7B7B7B" stroke="#7B7B7B" stroke-linecap="round" stroke-linejoin="round" stroke-miterlimit="10" points="35.417,12.16 32.797,9.03 31.917,10.07 35.417,14.25 42.917,5.29 42.037,4.25 "></polygon></svg><div class="alert-footer-text"><p>secure</p>安全加密</div></div></div>
</div>
<script type="text/javascript">
function alertSet(e) {document.getElementById("js-alert-box").style.display = "block", document.getElementById("js-alert-head").innerHTML = e;var t = 3,n = document.getElementById("js-sec-circle");document.getElementById("js-sec-text").innerHTML = t, setInterval(function() {//禁止其他网站调用此跳转//var MyHOST = new RegExp("<?php echo $_SERVER['HTTP_HOST']; ?>");//if (!MyHOST.test(document.referrer)) {//     location.href="http://" + MyHOST;//}if (0 == t) location.href = "<?php echo $url;?>";else {t -= 1, document.getElementById("js-sec-text").innerHTML = t;var e = Math.round(t / 5 * 735);n.style.strokeDashoffset = e - 735}}, 970)
} </script>
<script>alertSet("<?php echo $title;?>");</script>
</body>
</html>

4、在functions.php里加下面的代码:(注部分主题可能不是这个请自己区别)

/*自动给文章的外部链接添加nofollow属性开始*/ 
add_filter('the_content','link_jump',999);function link_jump($content){preg_match_all('/<a(.*?)href="(.*?)"(.*?)>/',$content,$matches);if($matches){foreach($matches[2] as $val){if(strpos($val,'://')!==false && strpos($val,home_url())===false && !preg_match('/\.(jpg|jepg|png|ico|bmp|gif|tiff)/i',$val) && !preg_match('/(ed2k|thunder|Flashget|flashget|qqdl):\/\//i',$val)){$content=str_replace("href=\"$val\"", "href=\"".home_url()."/go/?".base64_encode($val)."\" rel=\"nofollow\"",$content);}}}return $content;}
// 自动给文章的外部链接添加nofollow属性结束
/*WordPress外链自动新窗口打开并添加nofollow属性*/
add_filter( 'the_content', 'cn_nf_url_parse');
function cn_nf_url_parse( $content ) {$regexp = "<a\s[^>]*href=(\"??)([^\" >]*?)\\1[^>]*>";if(preg_match_all("/$regexp/siU", $content, $matches, PREG_SET_ORDER)) {if( !empty($matches) ) {$srcUrl = get_option('siteurl');for ($i=0; $i < count($matches); $i++){$tag = $matches[$i][0];$tag2 = $matches[$i][0];$url = $matches[$i][0];$noFollow = '';$pattern = '/target\s*=\s*"\s*_blank\s*"/';preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);if( count($match) < 1 )$noFollow .= ' target="_blank" ';$pattern = '/rel\s*=\s*"\s*[n|d]ofollow\s*"/';preg_match($pattern, $tag2, $match, PREG_OFFSET_CAPTURE);if( count($match) < 1 ) $noFollow .= ' rel="nofollow" '; $pos = strpos($url,$srcUrl); if ($pos === false) { $tag = rtrim ($tag,'>');$tag .= $noFollow.'>';$content = str_replace($tag2,$tag,$content);}}}}$content = str_replace(']]>', ']]>', $content);return $content;
}

 

这篇关于WordPress防红系统跳转页面和引导跳转页面gophp-html源码美化版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/206772

相关文章

Java 正则表达式URL 匹配与源码全解析

《Java正则表达式URL匹配与源码全解析》在Web应用开发中,我们经常需要对URL进行格式验证,今天我们结合Java的Pattern和Matcher类,深入理解正则表达式在实际应用中... 目录1.正则表达式分解:2. 添加域名匹配 (2)3. 添加路径和查询参数匹配 (3) 4. 最终优化版本5.设计思

Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案

《Vue3组件中getCurrentInstance()获取App实例,但是返回null的解决方案》:本文主要介绍Vue3组件中getCurrentInstance()获取App实例,但是返回nu... 目录vue3组件中getCurrentInstajavascriptnce()获取App实例,但是返回n

JS+HTML实现在线图片水印添加工具

《JS+HTML实现在线图片水印添加工具》在社交媒体和内容创作日益频繁的今天,如何保护原创内容、展示品牌身份成了一个不得不面对的问题,本文将实现一个完全基于HTML+CSS构建的现代化图片水印在线工具... 目录概述功能亮点使用方法技术解析延伸思考运行效果项目源码下载总结概述在社交媒体和内容创作日益频繁的

前端CSS Grid 布局示例详解

《前端CSSGrid布局示例详解》CSSGrid是一种二维布局系统,可以同时控制行和列,相比Flex(一维布局),更适合用在整体页面布局或复杂模块结构中,:本文主要介绍前端CSSGri... 目录css Grid 布局详解(通俗易懂版)一、概述二、基础概念三、创建 Grid 容器四、定义网格行和列五、设置行

前端下载文件时如何后端返回的文件流一些常见方法

《前端下载文件时如何后端返回的文件流一些常见方法》:本文主要介绍前端下载文件时如何后端返回的文件流一些常见方法,包括使用Blob和URL.createObjectURL创建下载链接,以及处理带有C... 目录1. 使用 Blob 和 URL.createObjectURL 创建下载链接例子:使用 Blob

Vuex Actions多参数传递的解决方案

《VuexActions多参数传递的解决方案》在Vuex中,actions的设计默认只支持单个参数传递,这有时会限制我们的使用场景,下面我将详细介绍几种处理多参数传递的解决方案,从基础到高级,... 目录一、对象封装法(推荐)二、参数解构法三、柯里化函数法四、Payload 工厂函数五、TypeScript

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

Vue3使用router,params传参为空问题

《Vue3使用router,params传参为空问题》:本文主要介绍Vue3使用router,params传参为空问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录vue3使用China编程router,params传参为空1.使用query方式传参2.使用 Histo

Java调用C++动态库超详细步骤讲解(附源码)

《Java调用C++动态库超详细步骤讲解(附源码)》C语言因其高效和接近硬件的特性,时常会被用在性能要求较高或者需要直接操作硬件的场合,:本文主要介绍Java调用C++动态库的相关资料,文中通过代... 目录一、直接调用C++库第一步:动态库生成(vs2017+qt5.12.10)第二步:Java调用C++

CSS Padding 和 Margin 区别全解析

《CSSPadding和Margin区别全解析》CSS中的padding和margin是两个非常基础且重要的属性,它们用于控制元素周围的空白区域,本文将详细介绍padding和... 目录css Padding 和 Margin 全解析1. Padding: 内边距2. Margin: 外边距3. Padd