PHP获取百度编辑器上传文章中的第一张图

57 篇文章 1 订阅
50 篇文章 0 订阅

       一开始想的用关键字查找,结果网上看了一大堆,没有符合我的,不知道是我上传图文的格式跟大家不一样还是咋的。然后自己写了一套方法,以关键字分割再组成数组,去获取图片的src里面的链接,上传的时候配置路径是:/lth/Public/upload/images/时间/时间戳/文件后,接下来以路径去匹配,查询这里就略过,直接看调用方法:

 $arr1 = $BannerLogic->newsarticleInfo(10,2);  //文章查询函数的调用

foreach($arr1[3] as $key => $value){
     $content = explode('/lth/Public/upload/images/',htmlspecialchars($value['contents'])); //分割文章组成数组
     $content = explode('quot',$content[1]); //再次分割喊图片的文章数组
     if($content[0] !== ''){ //当前文章有图片
          $content = str_replace('&','-',$content[0]); //去掉最后的特殊符号
     }
     $contents[$key]['id'] = $value['news_article_id']; //文章id          
     $contents[$key]['str'] = substr($content,0,-5); //第一张图片名称(时间/文件名)
}
$count = 0; //定义变量
foreach($contents as $k => $v){
     if($v['str'] == ''){ //当前文章没有图片
         unset($arr1[3][$k]); //移除当前文章
     }else{
         $count++; //统计有图片的新闻条数(显示在数字按钮处)
         $arr1[3][$k]['str'] = $v['str']; //将图片名称(时间/文件名)追加到文章查询后的结果集     
     }
     
}    

补充:最近找到正则匹配的方法

foreach($arr1[3] as $key => $value){
    $preg = '|src=(.*) |U'; //匹配img标签的正则表达式
    preg_match_all($preg, $value['contents'], $img); //这里匹配所有的img
    $contents[$key]['id'] = $value['news_article_id'];          
    $contents[$key]['str'] = $img[1][0];
}
$count = 0;      
foreach($contents as $k => $v){
    if($v['str'] == ''){
         unset($arr1[3][$k]);
    }else{
         $count++;
         // 移除" 特殊符号,这里冒号要去掉,不然图片在前端显示不出来
         $v['str'] = substr($v['str'],0,-6);
         $v['str'] = substr($v['str'],6); 
         $arr1[3][$k]['str'] = $v['str'];
    }          
}

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值