假設在Windows機器上運行以下內容,我希望在文檔根目錄中創建一個文件,但它不是。當w +被指定爲模式時,fopen不創建文件
$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
$handle = fopen($file,'w+b'); //using binary mode for windows
fwrite($handle,'test');
fclose($handle);
我下面這裏給出http://www.php.net/manual/en/function.fopen.php文件自該項目我正在運行的PHP版本4,我不能使用file_put_contents()。此外,我已經嘗試過,而沒有指定二進制模式,並得到相同的結果。
我已經使用echo
來輸出帶有和沒有str_replace
的$ file變量。沒有它字符串包含反斜槓\
與它字符串包含正斜槓/
根據文檔,如果你不想逃避反斜槓\\
你可以使用正斜線作爲窗口尊重兩個。由於dirname(__FILE__)
返回未轉義的反斜槓,我正在使用str_replace
修復它。 $file
的內容正是我期望它們的內容,解釋文件的當前路徑附加了/swsql.bat/
也在錯誤日誌中沒有錯誤。
編輯
改變$file = str_replace("\\",'/',dirname(__FILE__).'/swsql.bat');
到 $file = str_replace("\\",'/',dirname(__FILE__)).'/swsql.bat';
固定的問題。
`
你的腳本對該目錄有寫權限嗎? – TypeIA
它應該,雖然我不完全確定如何檢查 – richbai90
請確保'$ file'擁有您認爲它的值。儘管我不得不承認我從來沒有寫過任何PHP代碼,只是閱讀它,所以我不是專家。 – TypeIA