先来看php获取文章中所有图片正则表达式
代码如下 | 复制代码 |
$body="中国WEB第一站<img src=/notfound.jpg>"; preg_match_all("/(src|SRC)=["|'| ]{0,}(http://(.*).(gif|jpg|jpeg|png))/isU",$body,$img_array); echo "捕获的图片:"; |
输出结果是不能你代码的图片地址呢.
结果./notfound.jpg
好了,原理就出来了我们是利用preg_match_all获取了,但在wordpress中会有一点出入,因为图片地址规则不同,代码如下
代码如下 | 复制代码 |
<?php //从文章中搜索图片并获取图片 $SoImages = ‘~<img [^>]* />~’; preg_match_all($SoImages,$post->post_content,$Images); $PictureAmount=count($Images[0]); //获取图片数量 //处理所有的图片 for($i=0;$i<$PictureAmount;$i++){ echo $Images[0][$i] //处理图片,语句可以自定义,第一张图片为$Images[0][0]; } //通过使用switch控制语句处理第一张图片,也可以使用if…else…elseif语句来实现,具体逻辑请自定义 switch($PictureAmount>0){ case 1: echo $Images[0][0]; //输出第一张图片 break; default: $ImagesUrl=bloginfo(‘stylesheet_directory’).”/images/1.jpg”; //当文章无图片时默认输出的图片 } /*获得文章中的图片链接路径的代码 *首先使用上面第一段的语句从文章搜索并获取图片 *然后通过运行正则表达式来分析图片代码,然后得到匹配的字符 *以下只列出其中的一种正则表达式代码,有兴趣的童鞋可以自己编写 */ //获取一张图片,例如获取第一张图片$Images[0][0],其代码样例为:<img alt=”Google” title=”Google” id=”logo” src=”/intl/zh-CN/images/logo_cn.gif” width=”276″ height=”110″ border=”0″ /> $ImgUrl = $Images[0][0]; $SoImgAddress=”/<img.*?src=”(.*?)”[^>]*>/i”; //正则表达式语句 preg_match($SoImgAddress,$ImgUrl,$imagesurl); //分析 echo $imagesurl[1]; //得到并处理路径:/intl/zh-CN/images/logo_cn.gif ?> |
时间: 2024-09-20 09:06:27