如果Windows平台中的文件夹中有一个点(。),则file_get_contents不起作用

时间:2015-12-05 07:47:13

标签: php windows directory file-get-contents filepath

我正在使用Windows平台。 如果我将myFile.pdf放在abc@xyz.com中,那么下面的代码不起作用 -

file_get_contents('C:\Apache24\htdocs\portal\abc@xyz.com\myFile.pdf')

如果我将myFile.pdf放在abc @ xyzcom中,那么下面的代码就可以了 -

file_get_contents('C:\Apache24\htdocs\portal\abc@xyzcom\myFile.pdf')

所以结论是 - 如果文件夹名称中有一个点(。),那么file_get_contents就不会按预期工作。

知道如何在Windows平台的文件夹名称中转义(。)吗?

1 个答案:

答案 0 :(得分:2)

不是aswer(尚):
请尝试

<?php
$path = 'C:\\Apache24\\htdocs\\portal\\abc@xyz.com\\myFile.pdf';
checkPath($path);

function checkPath($path) {
    $d = dirname($path);
    if ( '/'===$d || '\\'===$d || $path===$d ) {
        return;
    }
    else {
        checkPath($d);
        echo 
            file_exists($path) ? '+':'-',
            is_dir($path) ? 'd' : ' ',
            is_readable($path) ? 'r' : ' ',
            ' | ', $path, 
        "<br />\r\n";
    }
}

add输出到您的问题文本。