答案 0 :(得分: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';
}
答案 1 :(得分:5)
不幸的是,到目前为止所有的答案都是错误的或不完整的。
<强> is_writable 强>
如果文件名存在且可写
,则返回TRUE
这意味着:
is_writable(__DIR__.'/file.txt');
即使脚本对目录具有写权限,也会返回false,这是因为file.txt尚不存在。
假设文件尚不存在,那么正确答案就是:
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;
}
答案 2 :(得分:3)
is_writable函数是好东西。但是,OP询问了如何在与脚本相同的目录中创建文件。从vlad b中偷偷偷窃,做到这一点:
$filename = __DIR__ . '/test.txt';
if (is_writable($filename)) {
echo 'The file is writable';
} else {
echo 'The file is not writable';
}
有关__DIR__
的详细信息,请参阅 predefined constants的php手册。如果没有它,您将在当前工作目录中创建一个文件,这可能或多或少地为您的目的定义。
答案 3 :(得分:0)
使用is_writable
PHP函数,文档和示例源代码,您可以在http://pl2.php.net/manual/en/function.is-writable.php找到