2013-06-21 70 views
1

我希望能夠讀取其完整域名和文件路徑文件的內容,所以像:PHP打開.txt文件與完整URL

http://www.example.com/files/file.txt

我不能做什麼這種情況是:

../files/file.txt

我已經試過捲曲,FOPEN,和的file_get_contents寧願使用捲曲,但不能讓它爲其中的任何工作。

有沒有一個明顯的原因,爲什麼這不工作,我失蹤?

下面是每個嘗試的代碼片段,有人知道其中一個人有什麼問題嗎?

順便說一句,如果我能做../files/file.txt它適用於每個選項。

$file = "http://www.example.com/files/file.txt"; 

的fopen:

$f=fopen($file,'r'); 
$data=''; 
while(!feof($f)) 
    $data.=fread($f,$size); 
fclose($f); 

捲曲:

function curl($url){ 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
$data = curl_exec($ch); 
curl_close($ch); 
return $data; 
} 

$data = curl($file); 

的file_get_contents:

$data = file_get_contents($file); 

預先感謝所有幫助。 「如果fopen wrappers已啓用的URL可以被用作具有這種功能的文件名」

許多共享

+2

共享主機?遠程連接可能被主機禁用 – Farkie

+0

您是否在服務器的錯誤日誌中看到任何錯誤?這可能是一個許可問題。 – showdev

+0

將'error_reporting(E_ALL)'添加到腳本並檢查錯誤日誌。但如果沒有人工作@Farkie很可能是正確的。 –

回答

3

file_get_contents工作正常的網址PHP 4> = 4.3.0和PHP 5託管服務器禁用了此選項,或者正在使用舊版本的PHP,並阻止使用PHP的safe mode加載外部文件。

enabling error_reporting開始,看看你的宿主網站,看看他是否阻止外部文件。

0

也許url fopen在您的主機上被禁用,而來自其他域的url只是被禁用?

的php.iniVAR了allow_url_fopen必須