百度推送的curl方法
其实这个方法,在百度里写的很清楚,不过更重要的是要考察json的使用以及curl的使用。
我使用的ajax方法来处理。这是后台的提交代码。
public function ajax_post()
{
$ids = $this->input->post("ids");
$ids = !empty($ids) ? $ids : exit("参数传递有误");
$ids = substr($ids,0,-1);
$arr_id = explode(",", $ids);
foreach ($arr_id as $k => $v)
{
$urls[] = "http://www.liulize.com/article/{$v}.html";
$this->db->set('postbaidu','postbaidu+1',false)->where('id',$v)->update('articles'); //提交次数+1
}
$api = 'http://data.zz.baidu.com/urls?site=www.liulize.com&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);
echo $result;
}而前台的代码如下:
我粘贴比较关键的地方。
<?php foreach ($lists as $k => $v): ?>
<tr class="gradeA even">
<td class="center">
<input type="checkbox" name="ids[]" value="<?php echo $v['id']; ?>"> <?php echo $v['id']; ?>
</td>
<td>
<a href="article/show/<?php echo $v['id']; ?>/" target="_blank"><?php echo $v['title'] ?></a>
</td>
<td><?php echo date('Y-m-d H:i:s',$v['updatetime']); ?></td>
<td><?php echo $v['postbaidu']; ?></td>
</tr>
<?php endforeach ?> 触发器
<div class="col-sm-6">
<div class="oprate">
<button class="btn btn-primary" id="baidu_post">百度推送</button>
</div>
</div>$("#baidu_post").click(function(){
$("input[name='ids[]']").each(function(){
if ( $(this).is(':checked') ) {
str_chk = $(this).val() + "," + str_chk;
};
})
if ( str_chk == '' ) {
alert('请选择数据');
return false;
} else {
$.post("admin.php/seo/ajax_post/",{ids:str_chk},function(data,textStatus){
data = JSON.parse(data);
if ( data.success > 1 ){
alert('操作成功,已经成功推送'+data.success+'条,还可以继续推送'+data.remain+'条');
parent.location.reload();
}else{
alert('操作失败,状态码' + data.error + '原因描述:' + data.message);
// parent.location.reload();
}
});
}
});这是一段js操作,str_chk是用来处理单选和复选的,不在多说了。
2018年5月23日19:35:31
更正一个地方。
if ( data.success > 1 ){ 改为
if ( data.success > 0 ){原因是发一条的时候有些问题。。
发布时间:2018-05-22,18:18:14
百度推送的curl方法,很简单。
