百度推送的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方法,很简单。