基本上这段代码抓住了帖子的第一张图片并将其显示在另一页面上。 如果没有图像,则会显示默认图像。
如何修改它以使其最多显示4张图像?
<?php
$Imagesrc = C('Plugin.IndexPostImage.Image','/images/default.png');
preg_match(
'#\<img.+?src="([^"]*).+?\>#s',
$Sender->EventArguments['Post']->Body,
$images
);
if ($images[1]) {
$Imagesrc = $images[1];
}
$thumbs ='<a class="IndexImg" href="'.
$Sender->EventArguments['Post']->Url .'">'.
Img($Imagesrc, array('title'=>$sline,'class'=>"IndexImg")).'</a>';
echo "$thumbs";
答案 0 :(得分:0)
根据preg_match手册
,您在阵列Orange
中找到的图像
$images
int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )
将包含与首次捕获匹配的文本 带括号的子模式,依此类推。
因此,您应该将$matches[1]
数组从1重复到5,如果$images
不为空,请将此图像添加到您的大拇指中。尝试这样的事情:
$images[$i]
答案 1 :(得分:0)
您可能希望改为使用preg_match_all:
$string = 'blah blah <img src="img1.png">blah blah <img src="img2.png">blah blah <img src="img3.png">';
preg_match_all(
'#<img.+?src="([^"]*)#s',
$string,
$images
);
print_r($images);
<强>输出:强>
Array
(
[0] => Array
(
[0] => <img src="img1.png
[1] => <img src="img2.png
[2] => <img src="img3.png
)
[1] => Array
(
[0] => img1.png
[1] => img2.png
[2] => img3.png
)
)