php
  • src
  • 2010-08-18 58 views 0 likes 
    0
    $variable = '<img src="http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG" height="32" width="32" alt=""/>'; 
    

    如何獲得該圖片的src?PHP get image src

    像:

    $src = 'http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG';

    感謝。

    +0

    是否還有其他在'$ variable',如其他HTML或只是字符串 – Gordon 2010-08-18 09:15:59

    +0

    你可以調整你的問題 – pltvs 2010-08-18 09:17:06

    回答

    4

    你可以使用一個html解析器。看到這個:http://simplehtmldom.sourceforge.net/(我希望這適用於節點,而不僅僅是整個頁面)。

    +2

    實際使用DOM,而不是建議的第三方的替代品?的字符串解析:[phpQuery](http://code.google.com/p/phpquery/),[Zend_Dom](http://framework.zend.com/manual/en/zend.dom.html),[QueryPath] (http://querypath.org/)和[FluentDom](http://www.fluentdom.org)。但是,對於OP的UseCase,HTML/DOM解析器可能會矯枉過正。 – Gordon 2010-08-18 09:20:42

    6

    使用正則表達式

    preg_match('@src="([^"]+)"@' , $variable , $match); 
    

    和SRC將在$的比賽,看到的print_r($比賽)。 但這僅僅是針對這種情況,如果你想通用的解決方案(如「反對」等)使用HTML/DOM解析器。

    +0

    實際上,我認爲正則表達式的一個罕見情況是合理的,並且比完整的HTML解析器更適合達到期望的結果。 – Gordon 2010-08-18 09:22:59

    +0

    這個正則表達式不起作用,給出空陣列 – James 2010-08-18 09:40:11

    +0

    @WorkingHard對我來說工作正常 – Gordon 2010-08-18 11:27:25

    1

    使用HTML DOM下載幷包括simple_html_dom.php文件在您的腳本。

    然後得到圖像的URL是這樣的:

    $html = str_get_html('<img src="http://www.gravatar.com/avatar/66ce1f26a725b2e063d128457c20eda1?s=32&d=identicon&r=PG" height="32" width="32" alt=""/>'); 
    
    // Find all images 
    foreach($html->find('img') as $element) 
         echo $element->src . '<br>'; 
    
    相關問題