2013-08-28 145 views
0

我有什麼應該是一個相當簡單的操作,這給了我似乎並不非常有幫助的錯誤。該代碼是這樣的:PHP文件()錯誤,無效的參數

<?php 
$strLines = file('//tardis/htdocs/apps/freespace/FreeSpace-Servers.txt'); 
. 
. 
. 
?> 

但是在PHP-errors.log,我得到這個:

[8月28日2013年16點31分30秒] PHP的警告:文件(// TARDIS /htdocs/apps/freespace/FreeSpace-Servers.txt)[function.file]:未能打開流:C:\ Program Files(x86)\ Apache Software Foundation \ Apache2.2 \ htdocs \ apps \ freespace \第2行的freespace.php

txt文件肯定存在。任何想法還有什麼「無效的論點」可能暗示?這些文檔似乎並沒有暗示其他許多方面。或者,我應該以不同的方式來做這件事嗎?我的目標是將文件作爲一系列內容讀取。所有的幫助表示讚賞。

+0

的可能重複[PHP使用網絡共享文件的文件內容](http://stackoverflow.com/questions/5070545/php-read-file-contents-of-network-share-file)(嘗試'\\ \\ server \\ share \\ file.txt') – Wrikken

+0

類似的,我明白了。但是fopen()用於URL,file()用於UNC路徑。不過,它可能工作。我會嘗試一下,作爲一種可能的替代選擇。 – Skotte

+0

沒有什麼區別,'file()'只是'fopen()'和'fread()'的一個包裝。 [_「如果fopen包裝已經啓用,可以使用URL作爲文件名。有關如何指定文件名的更多詳細信息,請參閱fopen()。」_](http://php.net/manual/ en/function.file.php) – Wrikken

回答

0

如果您使用UNC,則該地址應該是

file('\\\\tardis\\htdocs\\apps\\freespace\\FreeSpace-Servers.txt'); 

您可能還需要檢查你的PHP配置,您可以打開遠程文件。

+0

這給了我同樣的錯誤。 [28 - 8 - 2013十七時11分22秒] PHP警告:文件(\\ TARDIS \ htdocs中\應用\自由空間\自由空間-Servers.txt)[function.file]:未能打開流:用C參數無效:\ Program Files(x86)\ Apache Software Foundation \ Apache2.2 \ htdocs \ apps \ freespace \ freespace.php on line 2 – Skotte

+1

你能讀取任何遠程文件嗎?我的虛擬主機禁用了這個。檢查你的PHP配置。 – Robbert

+0

我開始認爲它可能是一個PHP配置問題,如你所建議的。 – Skotte

0

我有一個較爲正確的答案比任何以上的。雖然以上所有內容都完全正確,但實際問題(和解決方案)在問題18748985: PHP fails to read files上詳述。

簡短的回答是:Apache用戶密碼已更改,但是Apache不知道這件事。更新密碼並重新啓動服務。總體問題比這個更加豐富多彩,但這就是問題最簡單的解決方法。