前两天自己写的一篇文章“针对BootStrap中tabs控件的美化和完善”被别的网站给转载了,这也许是值得高兴的一件事情,但是有些网站并没有注明来源和作者。而去百度搜索这篇文章,排名第一的居然是那些转载的网站,哎,怪自己没本事,网站权重低,所以,我想了一个办法,能第一时间将我的文章提交给百度收录,以期望能够保护我的原创。我在自己的网站中添加了一个功能——在发文章的同时就将该文章推送给百度。下面来说说实现过程。
我的网站是基于ThinkPHP3.x框架的,所以要遵循ThinkPHP的框架标准,在用ThinkPHP框架建立的Home(网站前台所在的文件夹)中有个Common文件夹,这个文件夹主要用于存放在整个网站中都可以用到的方法,由于百度推送方法符合上述情况,因此我在该文件夹下的common.PHP中建了一个方法pushToBaidu,下面是该方法的代码:
//将文章推送到百度
function pushToBaidu($urls)
{
$api = 'http://data.zz.baidu.com/urls?site='你的网站URL'&token=你的Token';
$ch = curl_init();
$options = array(
CURLOPT_URL => $api,
CURLOPT_POST => true,
CURLOPT_RETURNTRANSFER => true,
CURLOPT_POSTFIELDS => implode("\n", $urls),
CURLOPT_HTTPHEADER => array('Content-Type: text/plain'),
);
curl_setopt_array($ch, $options);
$result = curl_exec($ch);
return $result;
}
这个方法在整个Action中都是可用的,下面我们来看看如何调用它,在Action里的发表文章的方法中添加如下调用代码用于当发表文章时将该文章的链接推动到百度:
//注意,由于百度推送的参数是数组,所以需要将文章的地址字符串强制转换成数组
$pushresult=pushToBaidu(array('文章的地址'));
$pobj=json_decode($pushresult);//将返回的Json字符串转换成PHP可操作的对象
if($pobj.success&&$pobj.success>=1)
{
$this->success('推送成功');
}else
{
$this->success('推送失败');
}
该文章首发于顶求网,原文链接:http://www.dqiu.net/doc/577f240ab5c6e