2014-07-03 86 views
-2

的URL圖像我有這樣一段代碼:PHP:查找特定的div

if (!$thumbdone) { 
    if (intval($fb_image_use_content)==1) { 
     $imgreg = '/<img .*src=["\']([^ ^"^\']*)["\']/'; 
     preg_match_all($imgreg, trim($post->post_content), $matches); 
     if (isset($matches[1][0])) { 
      //There's an image on the content 
      $image=$matches[1][0]; 
      $pos = strpos($image, site_url()); 
      if ($pos === false) { 
       if (stristr($image, 'http://') || stristr($image, 'https://')) { 
        //Complete URL - offsite 
        $fb_image=$image; 
       } else { 
        $fb_image=site_url().$image; 
       } 
      } else { 
       //Complete URL - onsite 
       $fb_image=$image; 
      } 
      $thumbdone=true; 
     } 
    } 
} 

代碼中找到的第一個圖像。 問題是我想找到這樣構造一個div中的第一個圖像:

<div style="display:block" class="ogimage"> 
<img class="aligncenter wp-image-1030 size-full" src="http:/site.com/image.jpg" alt="image" width="600" height="315"> 
</div> 

我Google這樣的: https://www.google.it/webhp?sourceid=chrome-instant&ion=1&espv=2&ie=UTF-8#q=php%20get%20image%20from%20div

我也試圖與http://www.phpliveregex.com/

,但沒有。幫幫我?

+0

不知您預期的輸出?要提取完整的圖像標籤或只是div標籤內圖像的'src'? – hwnd

+0

搜索PHP Xpath。你可以像這樣得到第一個圖像源:'// img [1]/@ src'或'// div [@ class =「ogimage」]/img [1]/@ src' –

回答

2

使用權tool作業,而不是試圖使用正則表達式來解析HTML。

$doc = new DOMDocument(); 
$doc->loadHTML($html); 

$xpath = new DOMXPath($doc); 
$img = $xpath->query('//div[@class="ogimage"]/img'); 

echo $img->item(0)->getAttribute('src'); 

Working Demo

+0

Tnx的幫助,但我需要正則表達式:(沒有辦法? – IImanuII

+2

爲什麼你需要正則表達式? – hwnd

+0

好的解決謝謝:D – IImanuII

0

您可以使用explode這樣的:

$html = '<div style="display:block" class="ogimage"><img class="aligncenter wp-image-1030 size-full" src="http:/site.com/image.jpg" alt="image" width="600" height="315"></div>'; 
$result = explode($html)[7]; 
+0

嗨,div在一個複雜的頁面。我需要編輯第一個代碼。這是wordpress插件的一部分。 – IImanuII