回答
是的,它的文件夹的工作....如果文件存在并且可写
返回TRUE。 filename参数可以是一个目录名称,允许您检查目录是否可写。
根据PHP手册is_writable应该在目录上工作正常。
根据the documentation for is_writable,它应该只是工作 - 但你说“文件夹”,所以这可能是a Windows issue。意见建议a workaround。
(之前的一个匆忙的阅读让我觉得后面的斜杠很重要,但事实证明这个工作是特定的)。
您可以发送一个完整的文件路径is_writable()
功能。如果该文件尚不存在于目录中,则is_writable()
将返回false。如果是这种情况,您需要检查目录本身,并删除文件名。如果你这样做,is_writable
会正确地告诉你该目录是否可写。如果$file
包含您的文件路径做到这一点:
$file_directory = dirname($file);
然后使用is_writable($file_directory)
,以确定是否该文件夹是可写的。
我希望这可以帮助别人。
这是代码:)
<?php
$newFileName = '/var/www/your/file.txt';
if (! is_writable(dirname($newFileName))) {
echo dirname($newFileName) . ' must writable!!!';
} else {
// blah blah blah
}
啊,`dirname($ new_file_name)`,这比我打算做的更简单。我打算使用`pathinfo($ new_file_name,PATHINFO_DIRNAME)`。谢谢。 – 2014-04-24 07:57:23
成为所有者/组/世界
$dir_writable = substr(sprintf('%o', fileperms($folder)), -4) == "0774" ? "true" : "false";
和平更具体的...
这个功能应该改进。现在它将返回false,例如`0777`的权限。 – 2016-01-27 13:27:58
这是我要做的事:
用file_put_contents()
创建一个文件并检查返回值,如果是肯定的(写入的数量字节),那么你可以继续做你必须做什么,如果是假的,然后它不可写
$is_writable = file_put_contents('directory/dummy.txt', "hello");
if ($is_writable > 0) echo "yes directory it is writable";
else echo "NO directory it is not writable";
,那么你可以使用的unlink()
unlink('directory/dummy.txt');
虽然这在技术上有效,但绝对不是推荐的方法。文件系统操作相对较慢,会产生大量开销,所以创建一个虚拟文件然后删除/取消链接它比其他大多数方法慢得多。 – Byson 2015-07-29 11:27:23
删除虚拟文件我写了一个小脚本(我把它叫做isWritable。php),它检测脚本所在的同一目录中的所有目录,并写入该页面以确定每个目录是否可写。希望这可以帮助。
<?php
// isWritable.php detects all directories in the same directory the script is in
// and writes to the page whether each directory is writable or not.
$dirs = array_filter(glob('*'), 'is_dir');
foreach ($dirs as $dir) {
if (is_writable($dir)) {
echo $dir.' is writable.<br>';
} else {
echo $dir.' is not writable. Permissions may have to be adjusted.<br>';
}
}
?>
- 1. 如何检查是否可以将文件写入目录?
- 2. 如何检查目录是否可以被UID写入?
- 3. 如何检查目录是否可以在win32 C/winapi中写入?
- 4. 检查是否每个人都可以读取/写入目录
- 5. 如何让PHP可以写入目录?
- 6. 在.NET中,检查当前用户是否可以写入目录
- 7. 如何检查目录是否存在?
- 8. 如何检查目录是在线PHP
- 9. 如何检查目录是否是Python中的临时目录
- 10. 如何判断一个目录是否可以在Objective-C中写入?
- 11. 如何通过PHP检查目录是否存在?
- 12. 如何检查PHP流资源是否可读或可写?
- 13. 如何检查stdout是否已写入?
- 14. 检查目录是否可读
- 15. 如何有效检查SD卡是否存在且可写入?
- 16. 如何检查目录下是否存在特定目录?
- 17. 如何检查目录以查看它是否有文件
- 18. 检查lua中是否存在目录?
- 19. 如何检查IIS目录是否是虚拟目录?
- 20. 检查模型,以查看Yii中是否存在记录-PHP
- 21. 如何在java中检查目录的写入权限?
- 22. 如何检查文件是否存在于目录中或不在PHP中?
- 23. 是否可以为php和javascript注释添加拼写检查
- 24. 如何检查目录内容是否因PHP而改变?
- 25. 如何使用PHP来检查一个目录是否为空?
- 26. 如何在Perl中检查Windows上是否存在Unicode目录?
- 27. 如何在shell脚本中检查目录是否存在?
- 28. 如何轮询目录以检查是否添加新文件?
- 29. .NET - 检查目录是否可以正常访问
- 30. C++:如何检查文件/目录是否可读? (PHP等效:is_readable)
诀窍是你不能在你真正想测试的文件夹中指定一个尚不存在的*文件*只需指定文件夹即可。 – philfreo 2010-09-24 17:33:51