2015-05-19 36 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,什麼包含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; 
} 
+0

這也將只輸出第一張圖像。 我回到$房子來獲取數組的內容。 基本上我需要的是讓所有圖像從一個字符串,並把它們放在一個循環像$ output – ToluT

+0

你的圖像在'$ house'變量中嗎?'$ house'是一個數組嗎? – vaso123

+0

是的但唯一的問題是當我使用foreach時,它只會輸出第一張圖片。@lolka_bolka – ToluT

相關問題