如何从单个字符串中获取多个图像

时间:2015-05-19 08:19:55

标签: php string image function

我环顾四周,找不到为我做的答案。我不想要HTML页面中的所有图像。我只想要一个字符串中的所有图像。

在页面上,我使用了两个不同的字符串。我想要第二张图片中的所有图像。我想将它们循环到旋转木马中。

我看了一下这就是我得到的:

function GetImgString($plaatje){

preg_match_all('/<img[^>]+>/i',$plaatje, $result);

$house = $result[0];

$i = 1;

    $output = '<div class="carousel-inner">';

        foreach ( $house as $houses ) {

                if ($i == 1) {
                    $output.= '<div class="item active">';
                }else{
                    $output.= '<div class="item">';
                }


                $output.= 

                        $house.'
                        <div class="container">
                            <div class="carousel-caption">

                            </div>
                        </div>
                    </div>

                ';


            $i++;
        }

    $output .= '</div>';

    return $house;}

这是输出:

Array
(
    [0] => <img src="images/Huizen/huis-3.jpg" alt="" />
    [1] => <img src="images/Huizen/huis-4.jpg" alt="" />
)

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

我假设,当你进行正则表达式时,在你的结果中,有2张图像。

您开始将输出构建为变量calles $output,但是返回$house,其中包含来自preg_match的2个结果。

所以你可以试试这个:

function GetImgString($plaatje) {
    preg_match_all('/<img[^>]+>/i', $plaatje, $result);
    $houses = $result[0];
    $houses = str_ireplace('<', '&lt', $house);
    $houses = str_ireplace('>', '&gt', $house);
    $i = 1;
    $output = '<div class="carousel-inner">';
    foreach ($houses as $house) {
        $class = ' class="item"';
        if ($i === 1) {
            $class = ' class="item active"';
        }
        $output.= '<div '.$class.'>';
        $output.=   $house . '
                        <div class="container">
                            <div class="carousel-caption"></div>
                        </div>
                    </div>' . "\n";
        $i++;
    }
    $output .= '</div>';
    return $output;
}