php is_writeable函数bug问题详解编程语言
2023-06-13 09:11:50 时间
其中bug存在两个方面,
1、在windowns中,当文件只有只读属性时,is_writeable()函数才返回false,当返回true时,该文件不一定是可写的。
如果是目录,在目录中新建文件并通过打开文件来判断;
如果是文件,可以通过打开文件(fopen),来测试文件是否可写。
2、在Unix中,当php配置文件中开启safe_mode时(safe_mode=on),is_writeable()同样不可用。
读取配置文件是否safe_mode是否开启。
/**
* Tests for file writability
*
* is_writable() returns TRUE on Windows servers when you really cant write to
* the file, based on the read-only attribute. is_writable() is also unreliable
* on Unix servers if safe_mode is on.
*
* @access private
* @return void
*/
if ( ! function_exists(is_really_writable))
{
function is_really_writable($file)
{
// If were on a Unix server with safe_mode off we call is_writable
if (DIRECTORY_SEPARATOR == / AND @ini_get("safe_mode") == FALSE)
{
return is_writable($file);
}
// For windows servers and safe_mode "on" installations well actually
// write a file then read it. Bah...
if (is_dir($file))
{
$file = rtrim($file, /)./.md5(mt_rand(1,100).mt_rand(1,100));
if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)
{
return FALSE;
}
fclose($fp);
@chmod($file, DIR_WRITE_MODE);
@unlink($file);
return TRUE;
}
elseif ( ! is_file($file) OR ($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)
{
return FALSE;
}
fclose($fp);
return TRUE;
}
}
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/19078.html
cjavaphpwindows相关文章
- php格式怎么转换为pdf,PHP如何将将word文件转为pdf
- 经典Bug永流传---每周一“虫”(四十五)
- 测试人!当遇到bug该怎么分析,字节5年老司机是这么秀操作的...
- 比冒泡算法还简单的排序算法:看起来满是bug的程序,居然是对的
- 盘点CDISC SDTM IG 3.3 的3个bug
- PHP连接linux并执行命令,php实现ssh远程连接服务器并操作服务器,PHP跨服务器执行shell脚本
- PyTorch + NumPy这么做会降低模型准确率,这是bug还是预期功能?
- flask开发没有解决的bug记录详解大数据
- 【PHP释放MySQL的威力】(php释放mysql)
- PHP多进程并行执行php脚本详解编程语言
- PHP命令执行php文件需要注意的问题详解编程语言
- 以PHP、MySQL 管理图片:实现一手网络图库管理(php图片mysql)
- 【Linux重启PHP服务的命令指南】(linux重启php命令)
- Google Chrome v90更新出BUG:Win10下疯狂崩溃
- Nginx 主线版 1.14.0 发布:Bug修复版本
- 配置PHP实现MySQL数据库连接(php连接mysql配置)
- 联合MySQL与PHP:双剑合璧(mysql与php)
- PHP开发者必须了解的Linux常识(php开发linux)
- 使用PHP实现Redis快速构建应用(redis实例php)
- PHP连接MS SQL服务器添加数据(php 添加mssql)
- Oracle乐观锁导致的Bug及解决方案(oracle乐观锁bug)
- Oracle PHP扩展拓展你的开发空间(oracle php扩展)
- PHP应用Redis缓存带来的变化(redis缓存在php)
- 给apache2.2加上mod_encoding模块後php5.2.0处理url出现bug
- 解决IE下select标签innerHTML插入option的BUG(兼容IE,FF,Opera,Chrome,Safari)
- PHP和Mysqlweb应用开发核心技术第1部分Php基础-1开始了解php
- php内核解析:PHP中的哈希表