2015-05-22 20 views
0

我使用此代碼從文件寫入一行到頁面。它的工作原理,當我寫這樣的PHP:php文件()不能使用絕對url

<?php 
$f_contents = file("something.txt"); 
$line = $f_contents[array_rand($f_contents)]; 
$data = $line; 
echo "$data"; 
?> 

但不是這樣的:

<?php 
$f_contents = file("http://something.com/something.txt"); 
$line = $f_contents[array_rand($f_contents)]; 
$data = $line; 
echo "$data"; 
?> 

爲什麼沒有工作,我怎麼能解決這個問題?

+2

您不想使用該URL。你想使用完整的*文件路徑*。 –

+0

所以我該如何寫檔案路徑 – TricksfortheWeb

+0

'file(「/ var/user/your/httpdocs/something.txt」)'或'../ folder/file.xxx' - *選擇你的味道* ;-) –

回答

2

您不想使用該URL。您要使用完整的文件路徑。這是來自服務器根目錄的文件路徑。我不能告訴你那是什麼,因爲我沒有訪問您的服務器,但它會是這個樣子:

/root/path/to/wwwroot/something.txt 

有很多方法,找出文件路徑。您可以通過將文件放在同一個目錄下包含以下內容編程做在PHP:

<?=__DIR__ ?> 

在瀏覽器中,然後打開它。

您的虛擬主機控制面板也應該能夠告訴您。對於FTP客戶端或SSH命令行也是如此。

+0

順便說一句,我很好奇根據Php.net - 文件()「一個URL可以作爲文件名與此功能,如果fopen包裝已被啓用」。因此,如果他在php_ini_system中啓用allow_url_fopen,那麼應該這樣做嗎? – Falt4rm

+0

當然。但是在共享主機上,這通常是關閉的,以及爲什麼當硬盤驅動器上的文件剛好位於硬盤驅動器上時,強制服務器通過網絡進入Internet並回到自身? –

+0

你是對的。只是想確保coz從未將url傳入file() - +1 - Bye <3 – Falt4rm