php用正则表达抓取网页中文章(用默认的nopic.jpg替换再看一个函数相对比较复杂了)

优采云 发布时间: 2022-04-19 01:31

  php用正则表达抓取网页中文章(用默认的nopic.jpg替换再看一个函数相对比较复杂了)

  概括

  php 获取文章 内容的第一个图像实例。要使用php获取文章中所有图片的第一张图片,我们只需要一个简单的正则表达式即可实现。下面给大家分享两个例子。先看一个

  要使用php获取文章中所有图片的第一张图片,我们只需要一个简单的正则表达式即可实现。下面给大家分享两个例子。

  先看一个函数:

  代码显示如下

  复制代码

  函数getpic($str_img){

  preg_match_all("/ /isU",$str,$ereg);//正则表达式获取全图

  $img=$ereg[0][0];//图片

  $p="#src=('|")(.*)('|")#isU";//正则表达式

  preg_match_all ($p, $img, $img1);

  $img_path =$img1[2][0];//获取第一张图片路径

  返回 $img_path;

  }

  //如果数据库是打开的,使用$nr获取数据库中的新闻内容

  $nr=$row_news["nr"];

  $aa=getpic($nr_a);

  if(!$aa){$aa="images/nopic.jpg";} //如果新闻中没有图片,则替换为默认的nopic.jpg

  我们来看一个比较复杂的函数。

  在做项目的时候,有时候页面的设计会留下文章特*敏*感*词*片的位置,但是有时候,这个文章没有上传图片,显示的时候没有图片在页面上。画风很丑。如果默认图片根本不上传,有时会引起一些误解;那么先考虑是否细化这个文章图片的问题:首先判断是否有上传图片,如果有,显示上传图片,如果没有,判断内容中是否有图片,选择这里第一张图片作为特*敏*感*词*片,如果内容中没有图片,则在此处显示默认图片;

  下面是在 文章 中选择第一张图片的代码:

  代码显示如下

  复制代码

  $obj=M("新闻");

  $info=$obj->where('id=1')->find();

  //方法1*********

  $soContent = $info['content'];

  $soImages = '~

  ]* />~';

  preg_match_all($soImages, $soContent, $thePics);

  $allPics = count($thePics[0]);

  preg_match('/ /i',$thePics[0][0],$match);

  转储($thePics);

  如果( $allPics > 0 ){

  回声“

  

  ";//获取图片名称

  }

  别的 {

  echo "没有图片";

  }

  //****************

  $soContent = $info['content'];

  $soImages = '~

  ]* />~';

  preg_match_all($soImages, $soContent, $thePics);

  $allPics = count($thePics[0]);

  转储($thePics);

  如果( $allPics > 0 ){

  回声 $thePics[0][0]; //获取整个Img属性

  } 别的 {

  echo "没有图片";

  }

  //****************

  $soImages = '~]* />~';

  $str=$info['内容'];

  preg_match_all($soImages,$str,$ereg);//正则表达式获取全图

  $img=$ereg[0][0];//图片

  $p="#src=('|")(.*)('|")#isU";//正则表达式

  preg_match_all ($p, $img, $img1);

  $img_path =$img1[2][0];//获取第一张图片路径

  如果(!$img_path){

  $img_path="images/nopic.jpg";

  } //如果新闻中不存在图片,则替换为默认的nopic.jpg*/

  回声 $img_path;

  //****************88

  $str=$info['内容'];

  preg_match_all("/ /isU",$str,$ereg);//正则表达式获取全图

  $img=$ereg[0][0];//图片

  $p="#src=('|")(.*)('|")#isU";//正则表达式

  preg_match_all ($p, $img, $img1);

  $img_path =$img1[2][0];//获取第一张图片路径

  如果(!$img_path){

  $img_path="images/nopic.jpg";

  } //如果新闻中不存在图片,则替换为默认的nopic.jpg*/

  回声 $img_path;

0 个评论

要回复文章请先登录注册


官方客服QQ群

微信人工客服

QQ人工客服


线