2014-03-07 71 views
0

我有一個php代碼來獲取url中的所有圖片。它將顯示圖像的網址。但是,獲得的圖像的網址存在一些問題。PHP代碼從url中獲取所有圖片

1:如果圖像託管在根目錄下,則不會顯示該域。例如,如果給定的網址是www.google.com,則獲得的圖像的URL是

「/logos/doodles/2014/womens-day-2014-6253511574552576.3-hp.png」

什麼我需要的是

「www.google.com/logos/doodles/2014/womens-day-2014-6253511574552576.3-hp.png」

2:所得到的URL總是之間 「」。我怎樣才能刪除它?

這裏的PHP代碼

<?php 
$url_image = $_GET['url']; 
$homepage = file_get_contents($url_image); 
preg_match_all("{<img\\s*(.*?)src=('.*?'|\".*?\"|[^\\s]+)(.*?)\\s*/?>}ims", $homepage, $matches, PREG_SET_ORDER); 
foreach ($matches as $val) { 
echo $val[2]; 
echo "<br>"; 
} 
?> 
+0

也許parse_url功能,可以幫助你在這裏,在這裏描述:HTTP ://www.php.net/manual/de/function.parse-url.php,也許用它來分割你的$ url_image並將它與你的圖像路徑 – Sirac

回答

0

可以使用substr($url,1,-1);

+1

或trim($ url,''')「結合起來? – keepwalking

+0

@keepwalking哇,這真的工作。非常感謝。我用第一個 –

0

嘗試這個""刪除:

$url_image = $_GET['url']; 
$homepage = file_get_contents($url_image); 
preg_match_all("{<img\\s*(.*?)src=('.*?'|\".*?\"|[^\\s]+)(.*?)\\s*/?>}ims", $homepage, $matches, PREG_SET_ORDER); 
foreach ($matches as $val) { 

    $pos = strpos($val[2],"/"); 
    $link = substr($val[2],1,-1); 
    if($pos == 1) 
     echo "http://domain.com" . $link; 
    else 
     echo $link; 
    echo "<br>"; 
} 
+1

感謝它的工作。我做了一些修改,並得到正確的東西。非常感謝 這裏是修改後的代碼 } ims」,$ homepage,$ matches,PREG_SET_ORDER); foreach($ match as $ val){ \t $ pos = strpos($ val [2],「/」); 如果($ POS == 1) \t { \t \t $ \t鏈路= SUBSTR($ VAL [2],2,-1); echo $ url_image。 $鏈接; } \t別的 \t { \t \t $鏈接= SUBSTR($ VAL [2],1,-1); echo $ link; \t \t echo「
」; \t} } ?> –

+0

歡迎您使用upvote或接受爲答案,如果它有一些用途:) – ehmad11