利用php的正则函数preg_match_all来获取新闻内容中的第一张图片方法。总共有三个方法,我们钭一一介绍。 追加方法一: $img=$row["news_content"];//新闻内容 preg_match_all('/<img.*?>/im' , $img,$match );//将新闻中所有图片存入数组 $img=$match[0][0] ;//第一张图片
追加方法二 适合phpcms直接使用的:
PHP Code复制内容到剪贴板$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" } }
(责任编辑:admin) |