[英]Error while writing to a file in php
在我的本地計算機上測試以下代碼時,未報告任何錯誤。 但是在工作的服務器上對其進行測試后,出現了以下奇怪的錯誤:php未在服務器上寫入文件。
我正在使用的代碼:
$myfile = fopen( "results/co".$a[$i].".txt", "w") or die("Unable to open file!");
fwrite($myfile,"some text");
fclose($myfile);
因此,在這種情況下不會創建文件。 當我嘗試將文件名“ results / co”。$ a [$ i]。“。txt”替換為其值時:“ results / co00112test.txt”:
$myfile = fopen( "results/co00112test.txt", "w") or die("Unable to open file!");
fwrite($myfile,"some text");
fclose($myfile);
它工作正常。
我還嘗試了以下方法:
$name = "results/co".$a[$i].".txt";
$myfile = fopen( $name, "w") or die("Unable to open file!");
fwrite($myfile,"some text");
fclose($myfile);
但是沒有希望。
此錯誤的原因可能是什么?
如果在放置一些靜態文件名時代碼工作正常,則很明顯變量$a[$i]
是錯誤的。
您可以通過這種方式進行調試:
$name = "results/co".$a[$i].".txt";
var_dump($name);
該名稱應該顯示一些奇怪的內容,並且可以告訴您文件的內容。
可能全是因為權限。 您的php用戶無權訪問要在其中創建文件的文件夾,也無權訪問要嘗試編輯的文件(如果文件已經存在)。
您可以在此處閱讀有關權限的完整文章(關於ubuntu,但實際上與哪個操作系統無關): https : //help.ubuntu.com/community/FilePermissions
您可以嘗試使用權限644,或者如果它不起作用,則可以使用777。644更安全,因為只有文件所有者可以編輯它,而操作系統的任何用戶都不能。
您可以像這樣更改文件夾及其所有文件/文件夾的權限:
chmod -R 644 /path/to/folder/
我認為644是文件的標准配置,755是目錄的標准配置。
您可以這樣更改文件/文件夾的所有者:
chown name_of_user:name_of_group /path/to/folder
您的文件名以雙零字符開頭,因此可能是一個問題。
這將不起作用:
$number = 112;
$file_name = "results/co".$number."test.txt";
這應該工作:
$number = 112;
$number_pad = str_pad($number, 5, '0', STR_PAD_LEFT);
$file_name = "results/co".$number_pad."test.txt";
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.