在PHP我怎麼確定我是否能在同一路徑下創建一個文件作爲腳本試圖創建一個文件如何檢查,如果我有在當前路徑寫入權限
3
A
回答
0
使用is_writable
PHP函數,你可以在http://pl2.php.net/manual/en/function.is-writable.php
5
找到這方面的文檔和示例源代碼,你是否嘗試過is_writable()函數?
文檔 http://www.php.net/manual/en/function.is-writable.php
實施例:
$filename = 'test.txt';
if (is_writable($filename)) {
echo 'The file is writable';
} else {
echo 'The file is not writable';
}
3
的is_writable功能是好東西。但是,OP詢問了如何在腳本所在的目錄中創建一個文件。從弗拉德b明目張膽地偷,這樣做:
$filename = __DIR__ . '/test.txt';
if (is_writable($filename)) {
echo 'The file is writable';
} else {
echo 'The file is not writable';
}
見 predefined constants PHP手冊中關於__DIR__
細節。沒有它,你將在當前的工作目錄中創建一個文件,這可能或多或少是你的目的而定義的。
5
不幸的是,到目前爲止所有的答案都是錯誤的或不完整的。
is_writable
返回TRUE,如果文件名存在並且是可寫
這意味着:
is_writable(__DIR__.'/file.txt');
將返回false即使腳本有寫對目錄的權限,這是因爲file.t xt尚不存在。
假設該文件不存在,正確的答案很簡單:
is_writable(__DIR__);
這裏有一個真實的例子,包含工程文件是否已經存在的邏輯:
function isFileWritable($path)
{
$writable_file = (file_exists($path) && is_writable($path));
$writable_directory = (!file_exists($path) && is_writable(dirname($path)));
if ($writable_file || $writable_directory) {
return true;
}
return false;
}
相關問題
- 1. 如何在java中檢查目錄的寫入權限?
- 2. Facebook:我如何檢測用戶的當前權限?
- 3. 檢查父目錄的寫入權限
- 4. 如何檢查寫入目錄或文件的權限?
- 5. 如何使用CHMOD(數字)檢查寫入權限?
- 6. 檢查,如果權限已被Android中
- 7. 在c#中的文件夾或UNC路徑寫入權限
- 8. 在ViewModel中如何檢查權限?
- 9. 我如何創建視圖在查詢中使用SYSTEM_USER的權限路徑
- 10. 如何在AngularJS中獲取當前路徑的路徑名?
- 11. 如何使用cli查找/檢查AWS S3中的當前權限?
- 12. 如何檢查在C#文件夾的讀寫權限
- 13. 在執行之前檢查sp_send_email權限
- 14. 如果文件權限大於755,如何檢查Perl?
- 15. 如何獲取當前html的路徑?
- 16. Angular 2:檢查路由名稱是否爲當前路徑
- 17. 的.htaccess重寫,如果沒有路徑進入
- 18. 在Rails中,如何獲取當前url(但沒有路徑)
- 19. Angular 2如何訪問當前路徑路徑
- 20. 檢查我們是否有寫入權限的文件夾?德爾福
- 21. 如何將GeoLocationClass的權限檢入MainActivity?
- 22. 如何檢查片段中的權限
- 23. 如何檢查國旗的權限?
- 24. 如何檢查SharePoint文檔權限?
- 25. Ant Build-Script如何檢查root權限
- 26. 如何檢查管理員權限C#
- 27. 授予權限的路徑
- 28. java - 調試時,如果我有一些作家,我如何獲得它正在寫入的文件名+路徑?
- 29. 檢查權限
- 30. 檢查在Windows/Linux中寫入文件權限
好如果test.txt不存在,這不起作用。 – IARI 2014-12-12 15:04:05