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

相关文章

Vue和React受控组件的区别小结

《Vue和React受控组件的区别小结》本文主要介绍了Vue和React受控组件的区别小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学... 目录背景React 的实现vue3 的实现写法一:直接修改事件参数写法二:通过ref引用 DOMVu

Java实现将HTML文件与字符串转换为图片

《Java实现将HTML文件与字符串转换为图片》在Java开发中,我们经常会遇到将HTML内容转换为图片的需求,本文小编就来和大家详细讲讲如何使用FreeSpire.DocforJava库来实现这一功... 目录前言核心实现:html 转图片完整代码场景 1:转换本地 HTML 文件为图片场景 2:转换 H

C#使用Spire.Doc for .NET实现HTML转Word的高效方案

《C#使用Spire.Docfor.NET实现HTML转Word的高效方案》在Web开发中,HTML内容的生成与处理是高频需求,然而,当用户需要将HTML页面或动态生成的HTML字符串转换为Wor... 目录引言一、html转Word的典型场景与挑战二、用 Spire.Doc 实现 HTML 转 Word1

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

JWT + 拦截器实现无状态登录系统

《JWT+拦截器实现无状态登录系统》JWT(JSONWebToken)提供了一种无状态的解决方案:用户登录后,服务器返回一个Token,后续请求携带该Token即可完成身份验证,无需服务器存储会话... 目录✅ 引言 一、JWT 是什么? 二、技术选型 三、项目结构 四、核心代码实现4.1 添加依赖(pom

基于Python实现自动化邮件发送系统的完整指南

《基于Python实现自动化邮件发送系统的完整指南》在现代软件开发和自动化流程中,邮件通知是一个常见且实用的功能,无论是用于发送报告、告警信息还是用户提醒,通过Python实现自动化的邮件发送功能都能... 目录一、前言:二、项目概述三、配置文件 `.env` 解析四、代码结构解析1. 导入模块2. 加载环

linux系统上安装JDK8全过程

《linux系统上安装JDK8全过程》文章介绍安装JDK的必要性及Linux下JDK8的安装步骤,包括卸载旧版本、下载解压、配置环境变量等,强调开发需JDK,运行可选JRE,现JDK已集成JRE... 目录为什么要安装jdk?1.查看linux系统是否有自带的jdk:2.下载jdk压缩包2.解压3.配置环境

Linux查询服务器系统版本号的多种方法

《Linux查询服务器系统版本号的多种方法》在Linux系统管理和维护工作中,了解当前操作系统的版本信息是最基础也是最重要的操作之一,系统版本不仅关系到软件兼容性、安全更新策略,还直接影响到故障排查和... 目录一、引言:系统版本查询的重要性二、基础命令解析:cat /etc/Centos-release详

更改linux系统的默认Python版本方式

《更改linux系统的默认Python版本方式》通过删除原Python软链接并创建指向python3.6的新链接,可切换系统默认Python版本,需注意版本冲突、环境混乱及维护问题,建议使用pyenv... 目录更改系统的默认python版本软链接软链接的特点创建软链接的命令使用场景注意事项总结更改系统的默

基于Python Playwright进行前端性能测试的脚本实现

《基于PythonPlaywright进行前端性能测试的脚本实现》在当今Web应用开发中,性能优化是提升用户体验的关键因素之一,本文将介绍如何使用Playwright构建一个自动化性能测试工具,希望... 目录引言工具概述整体架构核心实现解析1. 浏览器初始化2. 性能数据收集3. 资源分析4. 关键性能指