利用php的正则函数preg_match_all来获取新闻内容中的第一张图片方法。总共有三个方法,我们钭一一介绍。
追加方法一:

$img=$row[“news_content”];//新闻内容
preg_match_all(‘/<img.*?>/im’ , $img,$match );//将新闻中所有图片存入数组
$img=$match[0][0] ;//第一张图片

追加方法二 适合phpcms直接使用的:

$ext = ‘gif|jpg|jpeg|bmp|png’;
preg_match_all(“/(href|src)=([\”|’]?)([^ \”‘>]+\.($ext))\\2/i”, $r[‘content’], $matches);
$no1pic = $matches[3][0]?$matches[3][0]:$matches[3][1];

下面有三种方法,建议使用方法三

HTML代码:

<p>
test<img alt=”” src=”/ckfinder/userfiles/images/1(1).jpg” style=”width: 218px; height: 357px;” /> 疯了吗? <img alt=”” src=”/ckfinder/userfiles/images/3.jpg” style=”width: 218px; height: 357px;” /></p>

PHP代码:

//数据是通过ckeditor提交的,所以在读取时要使用 stripcslashes() 函数处理一下。
$_content = stripcslashes($_POST[‘content’]);

//方法一
preg_match_all(‘/<img.*?>/im’, $_content, $match);//将新闻中所有图片存入数组
if(count($match[0])){
$content->thumb = $match[0][0] ;//第一张图片
}else{
$content->thumb = ”;
}
var_dump($match);

echo ‘<br/>’;

//方法二
preg_match (“<img.*src=[\”](.*?)[\”].*?>”, $_content, $_match);
var_dump($_match);
//echo “$match[1]”;

//方法三
echo ‘<br/>’;
preg_match_all(“/src=\”\/?(.*?)\”/”, $_content, $match);
var_dump($match);
//echo($match[1][0]);

die;

结果:

方法一的结果:

array(1) {
[0]=> array(2) {
[0]=> string(93) “<img alt=”” src=”/ckfinder/userfiles/images/1(1).jpg” style=”width: 218px; height: 357px;” />”
[1]=> string(90) “<img alt=”” src=”/ckfinder/userfiles/images/3.jpg” style=”width: 218px; height: 357px;” />” }
}

方法二的结果:

array(2) {
[0]=> string(156) “img alt=”” src=”/ckfinder/userfiles/images/1(1).jpg” style=”width: 218px; height: 357px;” /> 疯了吗? <img alt=”” src=”/ckfinder/userfiles/images/3.jpg””
[1]=> string(32) “/ckfinder/userfiles/images/3.jpg”
}

方法三的结果:

array(2) {
[0]=> array(2) {
[0]=> string(41) “src=”/ckfinder/userfiles/images/1(1).jpg””
[1]=> string(38) “src=”/ckfinder/userfiles/images/3.jpg”” }
[1]=> array(2) {
[0]=> string(34) “ckfinder/userfiles/images/1(1).jpg”
[1]=> string(31) “ckfinder/userfiles/images/3.jpg” }
}