2010-11-24 73 views
0

我想下載一個文件,並把它的內容放入使用php的數據庫中。我能夠做到這一點。但是如果我必須先檢查網址,然後如果存在,請下載,否則報告失敗。我該怎麼做?php中檢查文件url

說:$ url =「...」;

我需要一個條件:

如果(在URL中存在文件)

{

 report success; 

     download; 

}

其他

 report failure; 
+0

@aendrew和傑夫:錯誤「...未能打開HTTP流......」不應該被打印出來。說我必須趕上錯誤,並以我自己的方式顯示它.. – Kut 2010-11-24 03:29:33

+0

與我的代碼,你不應該遇到任何錯誤,因爲@符號用於壓制警告。 – xaav 2010-11-24 21:56:55

回答

0

只需使用以下下面的代碼來檢查文件是否存在。

<? 
$ct = @file_get_contents($url) 

if(($ct != false)&&($ct != '')) { 
//The file exists 
} 
?> 

如果資源可能需要很長的時間來獲取,那麼你可以設置一個超時這樣的:

// Create the stream context 
$context = stream_context_create(array(
'http' => array(
'timeout' => 5  // Timeout in seconds 
) 
)); 

// Fetch the URL's contents 
$contents = @file_get_contents($this->url, 0, $context); 

// Check for empties 
if (!empty($contents)) { 
//The file exists 

} 
+0

謝謝隊友。那工作 – Kut 2010-11-24 03:47:26

0

if (fopen($url)) { report success; download; } else { report failure }

...應該做的伎倆。

在函數前添加@符號以防止錯誤輸出;所以:

if (@fopen($url)) { report success; download; } else { report failure }