2012-01-26 129 views
0

我想在php中打開文件。 但是,當我打開一個文件使用fopen()我得到了錯誤。 我的代碼如下。在php中打開文件

<?php 

chdir("/home/chintan/directory"); 

$fp = fopen("abc.txt","w"); 

if($fp == false) 
{ 
echo "Error while opening file"; 
} 

fwrite($fp,"Hi........"); 
fclose($fp); 

?> 

文件是存在,文件/目錄有寫入權限 和它給我使用echo有印刷錯誤。 我曾嘗試使用w +但它給出了相同的結果

+0

是否文件中存在?嘗試'w +'作爲文件模式。 –

+1

你有*什麼*錯誤? –

+0

回聲「打開文件時出錯」; – samn

回答

-1

我總是使用FALSE,而不是false。編寫比較的較短方式是if (!$fp) {...}。兩者都可以工作。如果這是一個理論問題,那麼,在一個理智的世界:)你的代碼應該工作。我使用NetBeans的Code Insight來獲取語法建議並標記不正確的行。

作爲單挑,您的代碼需要在寫入文件的代碼周圍使用else子句。現在即使fopen返回false,它也會寫入文件。我的意思是假。 :)

+0

不,它不起作用。 – Chintan

+0

這不是真的這個問題的答案,是嗎?你用什麼樣的布爾錯誤實際上是不相關的。 – Evert

+0

@Evert,我不是服務器管理員,所以我沒有足夠的關於設置PHP的配置選項,所以它不能正常工作。 ;)也許某些錯誤級別可能會設置爲錯誤的情況下失敗,因爲文檔和Code Insight都使用大寫字母而沒有其他字符。無論如何,userxx已經證實這不是問題。 –

0

退房你的php.ini,並設置如下:

display_errors = On 
error_reporting = E_ALL | E_STRICT 

這將顯示「真實的」基本錯誤。

0

你的工作文件夾來訪問它 錯誤後提供 '/':

chdir("/home/chintan/directory"); 

正確:

chdir("/home/chintan/directory/"); 

代碼:

<?php 
chdir("/home/chintan/directory/"); 

$fp = fopen("abc.txt","w"); 

if($fp == false) 
{ 
echo "Error while opening file"; 
} 

fwrite($fp,"Hi........"); 
fclose($fp); 

?> 

PS:

而在安全模式下的PHP,它不會允許目錄更改爲不可訪問的目錄由於安全模式限制

功能只是失敗沒有生成任何類型的錯誤 消息。

Reference