2015-05-19 3 views
1

Я осмотрелся и не нашел ответа, который сделал это для меня. Мне не нужны все изображения с 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] => &ltimg src="images/Huizen/huis-3.jpg" alt="" /> 
    [1] => &ltimg src="images/Huizen/huis-4.jpg" alt="" /> 
) 

Как решить эту проблему?

+2

Где это '$ huis' переменная должна исходить от? – vard

+0

'$ huis' - это что? Правильно, это недопустимый аргумент, поскольку он пуст. –

+0

$ huis = $ result [0] ;, извините забыл поставить это там также. Я получил изображения в массиве. Все они были в $ result [0]; – ToluT

ответ

0

Я предполагаю, что при выполнении регулярного выражения в ваших результатах есть 2 изображения.

Вы начинаете строить свой вывод в переменной, звоните $output, но вы возвращаетесь с $house, что содержит 2 результата из preg_match.

Таким образом, вы можете попробовать это:

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; 
} 
+0

Это также просто выходное первое изображение. я вернулся $ дома, чтобы получить содержимое этого массива. в основном то, что мне нужно, чтобы получить все изображения из строки и помещать их в цикл, как $ output – ToluT

+0

Являются ли ваши изображения в переменной '$ house'?' $ house' массив? – vaso123

+0

Да. Но единственная проблема заключается в том, что когда я использую foreach, он будет выводить только первое изображение. @lolka_bolka – ToluT

Смежные вопросы