采用php获取文章内容的第一张图片方法非常的简单,我们最常用的是使用正则了,感兴趣的朋友可以参考一下下面这段代码。
以下是关于选取文章中第一张图片的代码:
$obj=M("News"); $info=$obj->where('id=1')->find(); //方法1********* $soContent = $info['content']; $soImages = '~<img [^>]* />~'; preg_match_all( $soImages, $soContent, $thePics ); $allPics = count($thePics[0]); preg_match('/<img.+src=\"?(.+\.(jpg|gif|bmp|bnp|png))\"?.+>/i',$thePics[0][0],$match); dump($thePics); if( $allPics> 0 ){ echo "<img src='"https://www.jb51.net/article/.$match[1]."' title='"https://www.jb51.net/article/.$match[1]."'>";//获取的图片名称 } else { echo "没有图片"; } //************** $soContent = $info['content']; $soImages = '~<img [^>]* />~'; preg_match_all( $soImages, $soContent, $thePics ); $allPics = count($thePics[0]); dump($thePics); if( $allPics> 0 ){ echo $thePics[0][0]; //获取的整个Img属性 } else { echo "没有图片"; } //************** $soImages = '~<img [^>]* />~'; $str=$info['content']; preg_match_all($soImages,$str,$ereg);//正则表达式把图片的整个都获取出来了 $img=$ereg[0][0];//图片 $p="#src=('|\")(.*)('|\")#isU";//正则表达式 preg_match_all ($p, $img, $img1); $img_path =$img1[2][0];//获取第一张图片路径 if(!$img_path){ $img_path="images/nopic.jpg"; } //如果新闻中不存在图片,用默认的nopic.jpg替换 */ echo $img_path; //*************88 $str=$info['content']; preg_match_all("/<img.*\>/isU",$str,$ereg);//正则表达式把图片的整个都获取出来了 $img=$ereg[0][0];//图片 $p="#src=('|\")(.*)('|\")#isU";//正则表达式 preg_match_all ($p, $img, $img1); $img_path =$img1[2][0];//获取第一张图片路径 if(!$img_path){ $img_path="images/nopic.jpg"; } //如果新闻中不存在图片,用默认的nopic.jpg替换 */ echo $img_path;
php获取文章html内容第一张图片地址
php实现获取文章html内容第一张图片地址,示例采用正则表达式实现,代码仅供参考。也可以稍作修改即可获取文章内容中全部图片地址,具体业务具体扩展。
// 注意这个变量中img标签末尾的细节变化 $str='<center> <img src="https://www.xxxx.com/1.jpeg"> <img src="https://www.xxxx.com/2.jpeg" > <img src="https://www.xxxx.com/3.jpeg"/> <img src="https://www.xxxx.com/4.jpeg" /> </center>'; echo get_html_first_imgurl($str); exit; /** * 获取文章内容html中第一张图片地址 */ function get_html_first_imgurl($html){ $pattern = '~]*[\s]?[\/]?[\s]?>~'; preg_match_all($pattern, $html, $matches);//正则表达式把图片的整个都获取出来了 $img_arr = $matches[0];//全部图片数组 $first_img_url = ""; if (!empty($img_arr)) { $first_img = $img_arr[0]; $p="#src=('|\")(.*)('|\")#isU";//正则表达式 preg_match_all ($p, $first_img, $img_val); if(isset($img_val[2][0])){ $first_img_url = $img_val[2][0]; //获取第一张图片地址 } } return $first_img_url; }