2012-05-21 59 views
0

我想在URL存在/活動的情況下添加圖像。我自己嘗試了很多東西,使其工作,但沒有成功。根據URL的存在顯示圖像

我要的是:如果爲url1存在顯示圖像1別的什麼都沒有,如果URL2存在顯示圖像2否則什麼都沒有,等

foreach ($urlsArray as $url) { 
    if(@fopen($url,'r')){ 
    echo 'Exist'; 
    } 
    else { 
     echo 'Doesnt exist'; 
    } 
} 

抱歉,我必須要更具體的!

$urlArray = array(
'http://www.domain.com/page1.php' => 'images/image1.jpg', 
'http://www.domain.com/page2.php' => 'images/image2.jpg', 
etc); 

foreach($urlsArray as $url){ 
    if(@fopen($url,'r')){ 
     echo '<img src="$image" />' /* if url1 exist show image1, etc */ 
    }else{ 
     echo ''; 
    } 
} 

如何讓這個工作?

+0

你是什麼意思與 「圖像添加到URL」? – ilanco

+0

你的代碼現在作爲輸出顯示了什麼? –

回答

1

假設$url = path/to/pic/pic.gif - 這意味着網址實際上導致PIC將顯示

foreach ($urlsArray as $url) { 
    if(@fopen($url,'r')){ 
    echo '<img src="'.$url.'" />'; 
    } 
} 

更新(使用$鍵=>爲您的foreach $值):

foreach ($urlsArray as $url => $img) { 
    if(@fopen($url,'r')){ 
    echo '<img src="'.$img.'" />'; 
    } 
} 
+0

是的,但我想添加一個特定的圖像到一個特定的網址。 –

+0

看到我的更新版本 – Elen

+0

作品!謝謝Elen! –

0

也許這會有幫助嗎?:

<?php 

foreach($urlsArray as $url){ 
    if(!empty(file_get_contents($url))){ 
     echo "exist"; 
    }else{ 
     echo "Doesn\'t exist"; 
    } 
} 

?> 
0

根據我的知識和過去的經驗fopen對於外部URL需要allow_url_fopen設置爲開啓。通常,它將作爲部署環境中的安全措施被禁用,建議使用cURL等其他方法來檢查URL是否存在,並返回http響應代碼。然後繼續根據響應代碼顯示或不顯示圖像。

示例代碼:

$url_exists_1 = check_url($url1); 
if ($url_exists_1) { 
    // show image 1; 
} 
else { 
    // don't; 
} 
function check_url($url='') { 
    if (!function_exists('curl_init')) { 
    die("Please enable curl"); 
    } 
    $curl_options_array = array(
    CURLOPT_URL => $url, 
    CURLOPT_RETURNTRANSFER => TRUE, 
    CURLOPT_FOLLOWLOCATION => TRUE, 
    CURLOPT_MAXREDIRS => 5 
); 
    if ($url != '') { 
    $ch = curl_init(); 
    curl_setopt_array($ch, $curl_options_array); 
    curl_exec($ch); 
    $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); 
    curl_close($ch); 
    if ($code == 200) { 
     return TRUE; 
    } 
    else { 
     return FALSE; 
    } 
    } 
    else { 
    return FALSE; 
    } 
} 
+0

這些函數的行爲受php.ini中的設置的影響。 –

+0

@Learner是的,'allow_url_include'和'allow_url_fopen'在大多數情況下在php.ini中被禁用,因爲它可以用於[遠程文件包含](http://en.wikipedia.org/wiki/Remote_File_Inclusion)。 cURL是一個可行的選擇。 – optimusprime619

+0

好吧,但捲曲用來檢查網址是否存在? –