window下的php把/开始的路径当绝对路径处理

来源:互联网 发布:stc89c52烧录软件 编辑:程序博客网 时间:2024/04/29 14:07

把下面的代码放到g:/www/www/www/www/www/index.php中运行


<?php  
mkdir('/kkkkkkkkkkk');exit;


会发现有一个目录出现: g:/kkkkkkkkkkk



mkdir("\\kkkkd");exit;


也一样会在盘符的根目录下出现这个目录,

那就是php在window下时把/或是\开始的当绝对路径,且是相对于本盘符.


在php.net中mkdir有一个提示说

On windows, use //computername/share/filenameor       \computername\share\filenameto check files on       network shares.      


可是我测试后发现,\起始的路径并不会被认为是网络路径,而是上面的提到的相对本盘符的根目录;


经过测试的总结是:

\\或是//起始的路径在window中会被认为是share网络路径,然后分隔符不管是\还是/都能正常解析;

如果是\或是/起始的路径会被认为是等同于 盘符:/ 来进行解析


实际目录,


window下的php把/开始的路径当绝对路径处理 - qidizi - qidizi 的博客

php路径


window下的php把/开始的路径当绝对路径处理 - qidizi - qidizi 的博客


跟共享相同路径的盘符下的目录,也就是直接把//computer直接换成g:/的等效目录

window下的php把/开始的路径当绝对路径处理 - qidizi - qidizi 的博客

第一张实际目录共享后的共享路径目录

window下的php把/开始的路径当绝对路径处理 - qidizi - qidizi 的博客


当代码为

<?php  
var_dump( dirname("/qidizi/qidizi/rdddeed"));exit;

或是

<?php  
var_dump( dirname("\\qidizi/qidizi/rdddeed"));exit;


实际是解析成

g:/qidizi/qidizi/xxxx


当代码为


<?php  
var_dump( dirname("//qidizi/qidizi/rdddeed"));exit;


或是

<?php  
var_dump( dirname("\\\\qidizi/qidizi/rdddeed"));exit;


就会被解析成

\\QIDIZI/qidizi/xxx 的共享后的目录.


原创粉丝点击