WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存

本站使用WordPress 博客系统,腾讯云CDN+云解析 ,为追求速度,全站静态缓存。

但在发布和更新文章、提交及审核评论后,CDN缓存导致首页不能及时显示更新,在张戈博客发现了这段“自动清理腾讯云CDN缓存”的代码,马上用上——网络高手们确实多啊。

完整的 php 代码如下:

/**
* WordPress 发布/更新文章、提交/审核评论自动清理腾讯云CDN缓存(首页和当前文章) By 张戈博客
* 文章地址:https://zhangge.net/5089.html
* 转载请保留出处,谢谢合作!
**/

/* 需要填写你的密钥,访问 https://console.qcloud.com/capi 获取 SecretId 及 $secretKey */
$secretKey = '此处填写SECRET_KEY';
$secretId  = '此处填写SECRET_ID';

//更新或发布文章清理本文和首页CDN缓存
add_action('publish_post', 'Clean_By_Publish', 0);

//提交评论更新本文CDN缓存
add_action('comment_post', 'Clean_By_Comments',0);

//评论被审核更新本文CDN缓存
add_action('comment_unapproved_to_approved', 'Clean_By_Approved',0);

//发布文章更新CDN缓存函数
function Clean_By_Publish($post_ID){
    global $secretKey,$secretId;
    $url = get_permalink($post_ID);
    $action='RefreshCdnUrl';
    /*要清理的页面,默认包含首页和文章页面,需要清理其他页面请自行发挥*/
    $PRIVATE_PARAMS = array(
                    'urls.0' => home_url(),
                    'urls.1' => $url ,
                    );
    $HttpUrl="cdn.api.qcloud.com";
    /*除非有特殊说明,如MultipartUploadVodFile,其它接口都支持GET及POST*/
    $HttpMethod="POST";
    /*是否https协议,大部分接口都必须为https,只有少部分接口除外(如MultipartUploadVodFile)*/
    $isHttps =true;
    /*下面这五个参数为所有接口的 公共参数;对于某些接口没有地域概念,则不用传递Region(如DescribeDeals)*/
    $COMMON_PARAMS = array(
                    'Nonce' => rand(),
                    'Timestamp' =>time(NULL),
                    'Action' =>$action,
                    'SecretId' => $secretId,
                    );
    /***********************************************************************************/
    CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps);
}

//提交评论清理文章CDN函数
function Clean_By_Comments($comment_id) 
{
    global $secretKey,$secretId;
    $comment = get_comment($comment_id);
    $url = get_permalink($comment->comment_post_ID);
    $action='RefreshCdnUrl';
    /*参数*/
    $PRIVATE_PARAMS = array(
                    'urls.0' => $url,
                    );
    $HttpUrl="cdn.api.qcloud.com";
    /*除非有特殊说明,如MultipartUploadVodFile,其它接口都支持GET及POST*/
    $HttpMethod="POST";
    /*是否https协议,大部分接口都必须为https,只有少部分接口除外(如MultipartUploadVodFile)*/
    $isHttps =true;
    /*下面这五个参数为所有接口的 公共参数;对于某些接口没有地域概念,则不用传递Region(如DescribeDeals)*/
    $COMMON_PARAMS = array(
                    'Nonce' => rand(),
                    'Timestamp' =>time(NULL),
                    'Action' =>$action,
                    'SecretId' => $secretId,
                    );
    /***********************************************************************************/
    CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps);
}

//评论被审核清理CDN缓存函数
function Clean_By_Approved($comment)
{
    global $secretKey,$secretId;
    $url = get_permalink($comment->comment_post_ID);
    $action='RefreshCdnUrl';
    /*参数*/
    $PRIVATE_PARAMS = array(
                    'urls.0' => $url,
                    );
    $HttpUrl="cdn.api.qcloud.com";
    /*除非有特殊说明,如MultipartUploadVodFile,其它接口都支持GET及POST*/
    $HttpMethod="POST";
    /*是否https协议,大部分接口都必须为https,只有少部分接口除外(如MultipartUploadVodFile)*/
    $isHttps =true;
    /*下面这五个参数为所有接口的 公共参数;对于某些接口没有地域概念,则不用传递Region(如DescribeDeals)*/
    $COMMON_PARAMS = array(
                    'Nonce' => rand(),
                    'Timestamp' =>time(NULL),
                    'Action' =>$action,
                    'SecretId' => $secretId,
                    );
    /***********************************************************************************/
    CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps);
}

//请求主函数,无需改动
function CreateRequest($HttpUrl,$HttpMethod,$COMMON_PARAMS,$secretKey, $PRIVATE_PARAMS, $isHttps)
{
        $FullHttpUrl = $HttpUrl."/v2/index.php";
        /***************对请求参数 按参数名 做字典序升序排列,注意此排序区分大小写*************/
        $ReqParaArray = array_merge($COMMON_PARAMS, $PRIVATE_PARAMS);
        ksort($ReqParaArray);
        /**********************************生成签名原文**********************************
         * 将 请求方法, URI地址,及排序好的请求参数  按照下面格式  拼接在一起, 生成签名原文,此请求中的原文为 
         * GETcvm.api.qcloud.com/v2/index.php?Action=DescribeInstances&Nonce=345122&Region=gz
         * &SecretId=AKIDz8krbsJ5yKBZQ    ·1pn74WFkmLPx3gnPhESA&Timestamp=1408704141
         * &instanceIds.0=qcvm12345&instanceIds.1=qcvm56789
         * ****************************************************************************/
        $SigTxt = $HttpMethod.$FullHttpUrl."?";
        $isFirst = true;
        foreach ($ReqParaArray as $key => $value)
        {
                if (!$isFirst) 
                {
                        $SigTxt = $SigTxt."&";
                }
                $isFirst= false;
                /*拼接签名原文时,如果参数名称中携带_,需要替换成.*/
                if(strpos($key, '_'))
                {
                        $key = str_replace('_', '.', $key);
                }
                $SigTxt=$SigTxt.$key."=".$value;
        }
        /*********************根据签名原文字符串 $SigTxt,生成签名 Signature******************/
        $Signature = base64_encode(hash_hmac('sha1', $SigTxt, $secretKey, true));
        /***************拼接请求串,对于请求参数及签名,需要进行urlencode编码********************/
        $Req = "Signature=".urlencode($Signature);
        foreach ($ReqParaArray as $key => $value)
        {
                $Req=$Req."&".$key."=".urlencode($value);
        }
        /*********************************发送请求********************************/
        if($HttpMethod === 'GET')
        {
                if($isHttps === true)
                {
                        $Req="https://".$FullHttpUrl."?".$Req;
                }
                else
                {
                        $Req="http://".$FullHttpUrl."?".$Req;
                }
                $Rsp = file_get_contents($Req);
        }
        else
        {
                if($isHttps === true)
                {
                        $Rsp= SendPost("https://".$FullHttpUrl,$Req,$isHttps);
                }
                else
                {
                        $Rsp= SendPost("http://".$FullHttpUrl,$Req,$isHttps);
                }
        }
        //var_export(json_decode($Rsp,true));
        return json_decode($Rsp,true);
}
function SendPost($FullHttpUrl, $Req, $isHttps)
{
        $ch = curl_init();
        curl_setopt($ch, CURLOPT_POST, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, $Req);
        curl_setopt($ch, CURLOPT_URL, $FullHttpUrl);
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_TIMEOUT, 1 );
        if ($isHttps === true) {
                curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,  false);
                curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,  false);
        }
        $result = curl_exec($ch);
        return $result;

先访问 腾讯云的 API 密钥 创建或获取你在腾讯云的 API 密钥:

然后正确替换上述代码中的8,9行的 secretKey 和 secretId 值,比如:

/* 需要填写你的密钥,访问 https://console.qcloud.com/capi 获取 SecretId 及 $secretKey */
$secretKey = 'ABCD123CSDFSBSDFDSF';
$secretId  = 'CDAABBBSDFA683N23423N4';

部署后,博客发布或更新文章、评论的提交或审核都会调用 API 去清理 CDN 缓存,其中文章和评论的提交可能会比没有部署略微卡一点,评论的审核是异步提交,所以感知不到什么。

一行js代码破解百度云大文件下载限制

技术博主“凤凰山笔记”做的一个直接在下载百度云大文件、而不用启动百度云客户端的chrome插件,插件核心代码只有一行,分享一下。

大家知道,百度网盘里面的小文件,直接用浏览器和下载工具就行,但是大文件、还有文件夹就只能使用客户端了。因为百度云的PC页面会默认要求你使用客户端进行下载…

这个很烦:
1.百度云客户端下载很慢,而且故意限速
2.我使用的chrome浏览器,经常启动不了百度云客户端

看到一篇文章,里面有人通过开发人员工具(按F12),在console里面输入:Object.defineProperty(this , ‘navigator’ , {value: { platform: “” }}) ;就可以直接使用浏览器下载百度云的大文件以及文件夹了,于是我想这个直接做成chrome插件就行了,直接在百度云PC端界面注入这段js即可。

插件使用效果

一番捣腾之后,这个插件终于做出来了,实际运行效果如图:
插件使用效果1

很大的一个文件夹直接就获取了下载地址….,把这个链接复制到迅雷就可以很快的把文件下载下来了。

插件已开源:
https://github.com/cloudroc/baidu-nolimit

插件下载地址:
链接: https://pan.baidu.com/s/1eSDTUDW 密码: tehm
(crx文件安装方法请自行百度)

WordPress 500错误的原因和解决方法

WordPress前台不显示,一般的错误都是没有主题,可以直接从后台切换下主题,然后再换回去就可以了。如果后台都不显示了,并500报错解决办法,则错误可能有两点(咱就是第二个错误,花了几天时间才解决):

1、伪静态错误。如果可以直接操作数据库的话,就把数据库里面的伪静态规则的内容给删除了。具体数据库表位wp_options(wp_为数据表前缀,不一样的请自行替换,修改地点为下图红框内的),删除option_value的值(我的是自定义规则,默认的是http://域名/?p=123),删除值后便可以恢复到初始的伪静态(固定链接)http://域名/?p=123了。现在就可以尝试打开后台了。如果还不可以打开的话,请再做第二步。【可以显示的话,那么就恭喜你了,现在可以重新改会原来的伪静态而不会不显示了】

2、插件不兼容。同样,操作数据库,就把数据库里面的已启用插件全部取消了。具体数据库表位wp_options(wp_为数据表前缀,不一样的请自行替换,具体修改内容为下图红框内的),删除option_value的值。现在就可以尝试打开后台了。然后尝试启用插件,看看到底是哪个插件不兼容,然后禁用或者升级插件。

让老电脑运行win10系统速度倍增

Win10系统已经发布有一段时间了,尽管在发布时微软官方称win10对系统的配置要求不高,甚至比XP系统还低,但仍有一大波用户抱怨自从电脑装上win10系统后,速度大不如以前,尤其是电脑配置不高的用户更是怨声载道。

需要说明的是,微软在最新版的win10系统中加入了很多过渡动画,这无疑加重了显卡的负担,更不用说一些显卡低的电脑运行win10系统了,为了让用户体验更快速度的win10系统,下面就给大家传授一招提升老电脑运行win10系统速度的技巧,具体如何,一起来看看。

win10

综合来说,无论是电脑还是手机,系统自带的视觉性能在一定程度上都会对系统运行造成影响,因此,如果你的电脑配置不高又想体验win10系统不妨试下以上方法设置下。

无需云管家,浏览器直接下载百度云大文件

第一步、安装油猴脚本插件

请确保是Chrome浏览器或者基于Chrome的浏览器(比如360浏览器极速版),以下以Chrome浏览器为例
1)下载油猴脚本插件的crx文件到桌面

2)打开Chrome浏览器的菜单——设置——扩展程序,用鼠标拖动下载的crx文件到这个界面里,安装这个插件

第二步、安装百度网盘助手

点击 这里 进入安装页面,点击“安装”按钮即可

第三步、如何使用

再打开百度云的链接,就多了个按钮,选择“直接下载”就可以了,这就跟下载其他普通文件一样了,无需百度云。如果是比较大的比如电影或者系统镜像,可能速度走一下就不走了,这时候可以复制链接到迅雷里下载,会更快。

20160827164244

中子音乐播放器(Android)v1.86.0付费/高级/中文③版

软件大小:17M

此款音乐播放器市场价值40元,超强大的核心音频渲染,一共三个版本,感谢XDA大神分享。

中子播放器Neutron Music Player是一款专业播放器,具有专业高清32位音频渲染的核心,有助于从你的Android设备提供最佳音质外接扬声器或耳机。推荐使用Hi-Fi/High-End音频硬件。

话说自己N年前就用过,却因为它复杂的UI没能坚持使用。今天细致的研究了下,网传那恐怖的EQ也没啥难调的啊?直接用前面文章里poweramp的设置就极度完美啊!

付费版:点击下载         密码: rxfn

poweramp均衡器推荐设置[细说十段均衡器的设置和参数]

【POWERAMP均衡器推荐设置】
具体设置如下(如图):第一是增益,增益往后共有十个频段,从左至右是低音到高音,我的设置方法从均衡器的初始状态开始,即在中间,设值为0,往下按一下的话就是-1,往上按一下则为+1,依此类推。
    一:从左至右开始:
增益:0;第一频段:+6;第二频段:+4;第三频段:-5;第四频段:+2;第五频段:+3;第六频段:+4;第七频段:+4;第八频段:+5;第九频段:+5;第十频段:+6
  这种设置状态,我称之为:“完美低音”,这个设置方法的特点:低音比较醇厚、震撼但不浑浊,高音清澈具有穿透力而不会刺耳。大家可以和内置预设作比较。如果有的友友不喜低音重,可以随意自己调节高低音调节旋钮。音质绝对秒杀市面上绝大多数mp3播放器!
1
二:第二个均衡器设置我称之为“极致摇滚”,适合演绎摇滚曲风,这个设置的特点是,高低音十分震撼,声场强大,虽然人声略显有点远,但是瑕不掩瑜,风格特点十分突出,送给喜欢摇滚风格的机油!从左至右开始:0,+6,+4,0,-2,-6,+1,+4,+6,+7,+9(如图)
2
 三:第三个均衡器我称之为“最毒人声”,之所以称之为最毒人声,就是因为这种均衡器设置的中频人声特别突出,但是,这个均衡器设置的三频又十分的均衡,同样的清丽通透,听感十分舒服,使人久听不累。从左至右开始:增益:0;第一频段:+4;第二频段:0;第三频段:+1;第四频段:+2;第五频段:+3;第六频段:+4;第七频段:+5;第八频段:+4;第九频段:+3;第十频段:+3
3
以上三种均衡器的设置各有千秋,每位机友可以根据自己的喜好选择适合自己的一个使用。另外还有一点必须说明,由于各人使用的耳塞不一样,那么使用每一种均衡器时所表现出来的效果还是有一定区别的,不适当做点调整可能会出现瑕疵,比如,有的耳塞对低音表现较强,如果不对高低音音调调节旋钮适当调低,那么就会产生破音。另外,有了好的播放器,还必须得有高品质的音乐来配合播放才行,强烈建议选择位速为320K的音乐文件,无损格式的音乐文件较大,在手机中的实际播放效果和320K的区别也不大.

【第一章.EQ的基本定义】
EQ是Equalizer的缩写,大陆称为均衡器,港台称为等化器。作用是调整各频段信号的增益值。10段均衡器表示有10个可调节节点。节点越多,便可以调节出更精确的曲线,同时难度更大。从左到右的顺序是从低频到高频[100Hz, 200Hz, 400Hz, 600Hz, 1KHz, 3KHz, 6KHz, 12KHz, 14KHz, 16KHz]。
【第二章.EQ各频段的基本知识】
1.[20-60Hz]影响音色的空间感,因为乐音的基音大多在这段频率以上,这段很难表现,powermp3没有这段均衡。
2.[60-100Hz]影响声音的混厚感,是低音的基音区。如果这段频率很丰满,音色会显得厚实、混厚感强,如果不足,音色会变得无力;而如果过强,音色会出现低频共振声,有轰鸣声的感觉。有大鼓、定音鼓,还有钢琴、大提琴、大号等少数存在极低频率的乐器多表现在此段。
3.[80-160Hz]主要表现音乐的厚实感,音响在这部分重放效果好的话,会感到音乐厚实、有底气。这部分表现得好的话,在80Hz以下缺乏时,甚至不会感到缺乏低音。如表现不好,音乐会有沉闷感,甚至是有气无力许多低音炮音箱的重放上限,具此可判断您的低音炮音箱频率上限。
4.[150-300Hz]影响声音的力度,尤其是男音的力度。这段频率是男声声音的低频基音频率,同时也是乐音中和弦的根音频率。
5.[300-500Hz]表现人声的(唱歌、朗诵),这个频段上可以表现人声的厚度和力度,好则人声明亮、清晰,否则单薄、混浊。
6.[800Hz]影响音色的力度。如果这个频率丰满,音色会显得强劲有力;如果不足,音色将会显得松弛,也就是800Hz以下的成分特性表现突出了,低频成分就明显;而如果过多,则会产生喉音感。如果喉音过多了,则会失掉语音的个性,适当的喉音则可以增加性感,因此,音响师把这个频率称为”危险频率”,人声,打击乐多表现于此。
7.[1kHz]是音响器材测试的标准参考频率,通常在音响器材中给出的参数是在1kHz下测试。这是人耳最为敏感的频率。
8.[1.2kHz]可以适当多一点,不宜太多,可以提高声音的明亮度,过多会使声音发硬。
9.[2k-4kHz]穿透力很强。人耳耳腔的谐振频率是1∽4KHz,所以人耳对这个频率也是非常敏感的。2-4kHz对声音的亮度影响很大,这段声音一般不宜衰减。这段对音乐的层次影响较大。如果空虚频率成分过少,听觉能力会变差,语音显得模糊不清了。如果过强了,则会产生咳声的感觉。,有适当的提升可以提高声音的明亮度和清晰度,但是在4kHz时不能有过多的突出,否则女声的齿音会过重。
10.[4k-8kHz]这段频率最影响语音的清晰度、明亮度、如果这频率成分缺少,音色则变得平平淡淡;如果这段频率成分过多,音色则变得尖锐,人声可能出现齿音。这段频率通常通过压限器来美化。部分女声、以及大部分吹奏类乐器。
11.[8k-12kHz]这段是音乐的高音区,对音响的高频表现感觉最为敏感。适当突出(一点即可)对音响的的层次和色彩有较大帮助,也会让人感到高音丰富。但是,太多的话会增加背景噪声,同时也会让人感到声音发尖、发毛。如果这段缺乏的话,声音将缺乏感染力和活力。
12.[12k-16kHz]能够影响整体的色彩感,这段过于黯淡会导致乐器失去个性,过多则会产生毛刺感。
13.[16k-20kHz]可能很多人都听不到,听不到并不意味着器材无法回放,只有很少人可以听到20kHz。这段频率可以影响高频的亮度,以及整体的空间感,过少会让人觉得有点闷,太多则会产生飘忽感,容易产生听觉疲劳。电子合声、古筝钢琴等乐器的泛音多表现于此。
【第三章.EQ各频段调节效果】
每段频率分为[过低]、[半满]、[过高],效果以~隔开。
《1》20Hz-60Hz[过低]空虚~[半满]空间感良好~[过高]低频共振声显现”嗡”的声音。
《2》60Hz-100Hz[过低]无力~[半满]混厚感强~[过高]低频共振声显现”轰”的声。
《3》100Hz-150Hz[过低]单薄~[半满]丰满度增强,浑浊~[过高]显现”哼”声音。
《4》150Hz-300Hz[过低]软绵绵~[半满]声音力度强~[过高]生硬。
《5》300Hz-500Hz[过低]空洞~[半满]语音有力度~[过高]有电话声音色。
《6》800Hz[过低]松驰感~[半满]强劲感~[过高]喉音重。
《7》500Hz–1KHz[过低]有收缩感~[半满]声音的轮廓明朗~[过高]声音向前凸出。
《8》1-2KHz[过低]松散,使音色脱节~[半满]通透感强~[过高]跃感。
《9》2-3KHz[过低]朦胧~[半满]明亮度增强~[过高]呆板。
《10》4KHz[过低]模糊~[半满]穿透力强~[过高]咳音量。
《11》4-5KHz[过低]音源变远~[半满]响度感强~[过高]声音变近。
《12》5-6KHz[过低]含糊~[半满]清晰度强~[过高]尖利。
《13》6-8KHz[过低]暗淡~[半满]透明~[过高]齿音重。
《14》8-10K[过低]平淡~[半满]S音明显,通透感~[过高]尖锐。
《15》10-12KHz[过低]乏味,失去光泽~[半满]金属声强烈~[过高]尖噪。
《16》12-16KHz[过低]失掉光彩~[半满]金光四溅~[过高]刺耳。
《17》16-20KHz[过低]韵味失落,色彩失落缺乏音色表现力~[半满]靠人体颅骨传导感受声音的韵味,色彩富于音色表现力~[过高]宇宙声感和不稳定感。
【简单的说】
1、100Hz属于温暖段,如果使这部分加强能使低音部分更加的柔和温暖
2、200Hz属于混浊低沉,调音色时可适当减弱本段
3、300Hz~1KHz属于大多数音乐中的主要频段,突出这一频带可以加强音色的骨骼,但有时突出这一区域会使音乐显得有些“粘”,主要是在300Hz~800Hz之间
4、1KHz~2KHz这一频段很容易有“嗡嗡”的声音,削弱该频带会使声音干净,但同时也失去一部分效果
5、2KHz~4KHz属于温暖而又不失亮度,非常适合吉他类的乐器
6、4KHz~5KHz属于音质比较粗糙的频段,这部分的过高会导致整体音量的上升
7、7KHz或7KHz以上,就属于高频段,音质上显得尖锐很有攻击性,很容易产生嘶嘶声音
8、8KHz~10KHz范围属于钗片的音色范围,如有“嚓嚓”音可适当降低改频段

Textra SMS v1.34 修正汉化+Textra Emoji Plugin v1.2

应用简介:
Textra SMS(Textra短信)是chompSMS(超能短信)的开发团队Delicious Inc.的又一力作,整体用户界面简洁、美观、快速、小巧,专为Android 4.0及以上系统设计,能完全替代自带短信应用,不需要额外的设置,深得用户青睐。

 

主要功能:
– 可完全替代自带短信应用
– 完全兼容彩信和群聊
多种通知自定义设置(图标颜色、LED颜色、通知铃声、振动方式、隐私、快速回复弹窗)
可单独对联系人进行设置
快速酷炫的信息弹窗

 

更新日志:
添加 Andriod 扩展通知支持(仅 Jelly Bean)
添加 Nova 启动器/TeslaUnread 图标徽章支持(需要 Nova 启动器2.2.2或以上)
添加瑞典语和捷克语支持
修复一些漏洞及强制关闭问题

Textra SMS v1.34 修正汉化+Textra Emoji Plugin v1.2下载地址如下,顺便把自己的搜集的安卓手机软件分享出来:

http://pan.baidu.com/share/link?shareid=80334&uk=3154469092