在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. 檢查當前用戶的權限,如果用戶在SharePoint
- 2. 如何檢查當前用戶是否具有管理權限
- 3. 如何寫入文件,如果我有路徑xcode
- 4. 如何在Django中檢查當前用戶的權限?
- 5. 如何在錨點href處嵌入路徑到當前路徑?
- 6. 如何在java中檢查目錄的寫入權限?
- 7. 權限和當前登錄檢查
- 8. 檢查{{路徑()}}是當前{{路徑()}}在Symfony2中
- 9. Facebook:我如何檢測用戶的當前權限?
- 10. 如何從當前路徑而不是腳本路徑導入?
- 11. Ruby on Rails Rspec:你如何檢查當前路徑?
- 12. 檢查父目錄的寫入權限
- 13. Android如何檢查權限?
- 14. 如何使用CHMOD(數字)檢查寫入權限?
- 15. 如何檢查寫入目錄或文件的權限?
- 16. 檢查,如果用戶輸入文件名/路徑有效
- 17. 檢查,如果權限已被Android中
- 18. 如何檢查目錄具有讀/寫權限
- 19. 如何寫一個文件,如果用戶有非寫權限
- 20. 在c#中的文件夾或UNC路徑寫入權限
- 21. 如何在Plone中檢查權限?
- 22. 在ViewModel中如何檢查權限?
- 23. 如何檢查非管理員沒有UAC的管理員的寫入權限?
- 24. 如何檢查Sharepoint組是否具有SPListItem中的讀取或寫入權限
- 25. 我如何創建視圖在查詢中使用SYSTEM_USER的權限路徑
- 26. 如何在AngularJS中獲取當前路徑的路徑名?
- 27. 如何在顫動中獲取當前的路徑路徑?
- 28. 如何使用cli查找/檢查AWS S3中的當前權限?
- 29. 如何檢查在C#文件夾的讀寫權限
- 30. 在執行之前檢查sp_send_email權限
好如果test.txt不存在,這不起作用。 – IARI 2014-12-12 15:04:05