簡體   English   中英

PHP從字符串中獲取圖像的所有URL

[英]PHP Get All URL's of Images From String

我需要PHP的函數或Regex字符串,我可以傳遞一個字符串,如下所示:

Lorem ipsum dolor sit amet, http ://www.gettyimages.com/images/marketing/frontdoorStill/PanoramicImagesRM/FD_image.jpg consectetur adipiscing elit。 Nullam sed diam lectus,rutrum orci。 Suspendisse的潛力。 Nulla facilisi。 Suspendisse的潛力。 Ut http://www.handsonuniverse.org/get_images/images/20090802.ngc6992.HOS.jpg ullamcorper mauris sit amet elit tristique sit amet laoreet nunc condimentum。 Lorem ipsum dolor坐下來,精致的adipistur elit。 Aliquam euismod arcu non odio http://www.prelovac.com/vladimir/wp-content/uploads/2008/03/example.jpg aliquam vestibulum。 Sed eleifend tellus id augue luctus ac ultrices leo semper。

我會得到回報得到:

http://www.gettyimages.com/images/marketing/frontdoorStill/PanoramicImagesRM/FD_image.jpg http://www.handsonuniverse.org/get_images/images/20090802.ngc6992.HOS.jpg http://www.prelovac。 COM /弗拉基米爾/可濕性粉劑內容/上傳/ 2008/03 / example.jpg

在數組中。 我需要它來抓取基於天氣的URL,或者它們包含常規的圖像擴展名,例如* .jpg,* .png,* .bmp等。任何人都知道一個存在,所以我可以避免重新發明輪子? 謝謝!

那么,下面將適用於您的示例:

preg_match_all('/(https?:\/\/\S+\.(?:jpg|png|gif))\s+/', $content, $matches);

添加您要捕獲的任何其他擴展名。

請注意,上述內容不一定非常強大(例如,它與www.blah.com/image.jpg不匹配)。 它也不會匹配未在擴展中結束的URL,即使它們是圖像(即http://domain.com/blah.jpg?loadsmall=true或其他東西)。 有一些方法可以使它更加智能,但它實際上取決於您期望的輸入類型,因為這會推動您的解析需要多么復雜。

如果您不想使用正則表達式執行此操作。 而是解析HTML。

<?php
$html='YOUR_STRING';
$dom = new domDocument; 
$dom->loadHTML($html); 
$dom->preserveWhiteSpace = false;
$images = $dom->getElementsByTagName('img');

foreach ($images as $image) 
   {   
     echo $image->getAttribute('src'); 
   }

?>

這是正則表達式: /(http|https|ftp|ftps)\\:\\/\\/[a-zA-Z0-9\\-\\.]+\\.[a-zA-Z]{2,3}(\\/\\S*)?/g

演示: http//regexr.com?31ni5

積分轉到谷歌的一些隨機結果。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM