douyong1974 2016-02-28 01:39
浏览 52

使用preg_match从帖子中检索和显示图像

Basically this piece of code grab the first image of the post and display it at another page. If no images, it will show the default image.

How do I modify it to make it display max up to 4 images ?

<?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";
  • 写回答

2条回答 默认 最新

  • dsaeyrq451928 2016-04-09 23:22
    关注

    Your found images in array $images according to to preg_match manual:

    int preg_match ( string $pattern , string $subject [, array &$matches [, int $flags = 0 [, int $offset = 0 ]]] )

    $matches[1] will have the text that matched the first captured parenthesized subpattern, and so on.

    So you should iterate over $images array from 1 to 5 and if $images[$i] not empty add this image to your thumbs. Try something like this:

    <?php
    
    $Imagesrc = C('Plugin.IndexPostImage.Image','/images/default.png');
    
    preg_match(
        '#\<img.+?src="([^"]*).+?\>#s',
        $Sender->EventArguments['Post']->Body,
        $images
    );
    
    $thumbs = "";
    for ($i = 1; $i <= 5; $i) {
        if(!empty($images[$i])) {
            $thumbs .= '<a class="IndexImg" href="' .
                $Sender->EventArguments['Post']->Url . '">' .
                Img($images[$i], array('title' => $sline, 'class' => "IndexImg")) . '</a>';
        } else {
            break;
        }
    }
    
    echo "$thumbs";
    
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#matlab#的问题:在模糊控制器中选出线路信息,在simulink中根据线路信息生成速度时间目标曲线(初速度为20m/s,15秒后减为0的速度时间图像)我想问线路信息是什么
  • ¥15 banner广告展示设置多少时间不怎么会消耗用户价值
  • ¥16 mybatis的代理对象无法通过@Autowired装填
  • ¥15 可见光定位matlab仿真
  • ¥15 arduino 四自由度机械臂
  • ¥15 wordpress 产品图片 GIF 没法显示
  • ¥15 求三国群英传pl国战时间的修改方法
  • ¥15 matlab代码代写,需写出详细代码,代价私
  • ¥15 ROS系统搭建请教(跨境电商用途)
  • ¥15 AIC3204的示例代码有吗,想用AIC3204测量血氧,找不到相关的代码。