php用正则表达抓取网页中文章(用默认的nopic.jpg替换再看一个函数相对比较复杂了)
优采云 发布时间: 2022-04-19 01:31php用正则表达抓取网页中文章(用默认的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;