2011-12-21 56 views
0

我在使用fgetcsv函數時遇到問題。問題是確切的代碼在我的本地,但不是在服務器。以下是代碼:如何在php中調試fgetcsv函數?

if (($handle = fopen("tmp/".$xlsfile, "r")) !== FALSE) { 
    $data = fgetcsv($handle, 1000, ","); 
    ... 
} 

調試時,$ handle的print_r返回一些東西(資源#99),但print_r $ data不返回任何內容。

這對我來說有點奇怪,因爲完全相同的代碼和.csv文件在我本地測試時工作。上傳csv函數起作用,因爲我可以看到文件被上傳,並且fopen返回正確的值。

我注意到的唯一區別是,在該頁面中,活動服務器使用https,但我不認爲這應該是一個問題,因爲文件被上傳,並且fopen是成功的。

有人有想法嗎?

UPDATE [已解決]: 我找到了解決方案,它是因爲在活動服務器中,此頁面使用https,但提交csv文件的表單url在前面沒有https。

+1

充分權限到CVS文件。 – 2011-12-21 05:54:49

+0

你可以檢查'「tmp /".$ xlsfile'是否導致存在文件? – ajreal 2011-12-21 06:05:00

+0

是的,文件確實存在,我確實檢查過。而且,成功的事實似乎證實了這一點。 – hudarsono 2011-12-22 07:18:33

回答

0

你的意思是這樣的:

 
//give permission then do 
$file = fopen("your_file.csv","r"); 
print_r(fgetcsv($file)); 
fclose($file);