php采集博客数据入MySQL 以及 展示数据

 在采集以及展示数据用到 

1.addslashes()和stripslashes() 

    //addslashes() 函数返回在预定义字符之前添加反斜杠的字符串

    //stripslashes() 函数删除由 addslashes() 函数添加的反斜杠

    //addslashes()与addcslashes()函数的区别:

      这是两个写法非常相近但是使用有所区别的函数,addslashes() 函数返回在预定义字符之前添加反斜杠的字符串,而addcslashes() 函数返回在        指定字符前添加反斜杠的字符串,因此addcslashes() 函数需要添加附加参数说明需要添加反斜杠的具体字符。

注意 :  在往 MySQL 存入数据时 文本内容里面的字符比较复杂,  处理后与 自己写的PHP代码 区分; 以及在在展示时 需要反处理;

2.htmlspecialchars()和htmlspecialchars_decode() 

    //  htmlspecialchars() 函数把预定义的字符转换为 HTML 实体。

    //htmlspecialchars_decode() 函数把预定义的 HTML 实体转换为字符。

    注意: 博客数据 有很多需要转码: 不然的或 PHP获取不到;

下面: 分享下采集出库时的PHP代码 :

<?php
header('content-type:text/html; charset=UTF-8');
//获取地址以及数据
$url="https://blog.csdn.net/zph1234/rss/list";
$data=file_get_contents($url);
//PHP正则
$preg='#<item>(.*)</item>#isU';
$preg1='#<title>(.*)</title>#isU';
$preg2='#<link>(.*)</link>#isU';
$preg3='#<author>(.*)</author>#isU';
$preg4='#<pubDate>(.*)</pubDate>#isU';
$preg5='#<description>(.*)</description>#isU';
$preg6='#阅读:([1-9]\d*+).*</description>#isU';
//获悉入库的数据整理
preg_match_all($preg,$data,$result);
//print_r($result[0]);exit;
foreach($result[1] as $k=>$v){
    preg_match($preg1,$v,$title);
    $data2[$k]['title']=htmlspecialchars($title[1]);
    preg_match($preg2,$v,$link);
    $data2[$k]['link']=$link[1];
    preg_match($preg3,$v,$author);
    $data2[$k]['author']=$author[1];
    preg_match($preg4,$v,$date);
    $data2[$k]['date']=$date[1];
    preg_match($preg5,$v,$count);
    $data2[$k]['count']=addslashes( htmlspecialchars($count[1]) );
    preg_match($preg6,$v,$num);
    $data2[$k]['num']=$num[1];
 }
//链接数据库  
$con=mysqli_connect('127.0.0.1','root','root','week')or die(mysqli_error());
//处理sql语句;
$str='';
foreach($data2 as $key=>$va){
    $str =  "('".$va['title']."','".$va['link']."','".$va['author']."','".$va['date']."','".$va['num']."','".$va['count'] ."')";
    $sql="insert into blog(`title`,`link`,`author`,`ctime`,`num`,`count`) values  $str";
    $res=mysqli_query($con,$sql);
}

注意: 入库时采用循环入库 ; 如果处理好数据一次性入库的话; 数据过大 ; 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值