采集CSDN博客中的RSS订阅小功能

<?php
header("content-type:text/html;charset=utf8");//编码
$url = "https://blog.csdn.net/zph1234/rss/list";//路径(网上路径)
$html = file_get_contents($url);//利用file_get_contents采集
$yy = '#<item>(.*)</item>#isU';//采集的正则(所有内容)
preg_match_all($yy,$html, $html2);//正则匹配
$html3 = [];
foreach($html2 as $k=>$v){//处理数组让三维数组变二维
   $html3 = $v;
}
$b = '#<title>(.*)</title>#isU';//采集的正则(标题)
$b1 = '#<description>(.*)</description>#isU';//采集的正则(内容)
$b2 = '#<pubDate>(.*)</pubDate>#isU';//采集的正则(日期)
$b3 = '#阅读:([1-9]\d*+).*</description>#isU';//采集的正则(阅读量)
$b4 = '#<link>(.*)</link>#isU';//采集的正则(原文链接)
$b5 = '#<author>(.*)</author>#isU';//采集的正则(作者名)
$arr = [];
foreach($html3 as $k=>$v){//处理数组
   preg_match($b, $v,$n);
   $arr['b_tilte'][] = addslashes( htmlspecialchars($n['1']));//匹配正则数据(标题)
   preg_match($b1, $v, $n1);
   $arr['b_content'][] = addslashes( htmlspecialchars($n1['1']));//匹配这则数据(内容)
   preg_match($b2, $v, $n2);
   $arr['b_time'][] = $n2['1'];//匹配正则数据(时间)
   preg_match($b3, $v, $n3);
   $arr['b_number'][] = $n3['1'];//匹配正则数据(阅读量)
   preg_match($b4, $v, $n4);
   $arr['b_url'][] = $n4['1'];//匹配正则数据(原文地址)
   preg_match($b5, $v, $n5);
   $arr['b_author'][] = addslashes( htmlspecialchars($n5['1']));//匹配正则数据(正则)
}
$data = [];
foreach($arr as $k=>$v){//处理数组
   foreach($v as $key=>$val){
      $data[$key][$k] = $val;
   }
}//利用MySQL的原生语句循环添加到数据库
$con = mysqli_connect('127.0.0.1','root','root','book');
$con->set_charset('utf8');
foreach($data as $k=>$v){
   $sql = "insert into csdn (b_tilte,b_content,b_number,b_author,b_url,b_time)  values ('$v[b_tilte]','$v[b_content]','$v[b_number]','$v[b_author]','$v[b_url]','$v[b_time]')";
    mysqli_query($con,$sql);
}
$u = mysqli_affected_rows($con);//查看数据库影响行数
if($u){//判断是否添加成功
    echo "添加成功";
}else{
    echo "添加失败";
}
?>

PHP addslashes() 函数

在每个双引号(")前添加反斜杠:

PHP htmlspecialchars() 函数

把预定义的字符 "<" (小于)和 ">" (大于)转换为 HTML 实体:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值