【问题标题】:How to read files from a network drive in php?如何在php中从网络驱动器读取文件?
【发布时间】:2019-05-27 18:33:35
【问题描述】:

我正在编写如下所示的 php 代码,我想在其中读取如下所示的网络驱动器:

$src_dir = is_dir("\\\\ADMPC02-02\\music\\incoming_folder\\");    // Line#A

var_dump($src_dir);  // bool(false)

$mp4_files = preg_grep('~\.(mp4)$~', scandir($src_dir));

$xml_files = preg_grep('~\.(xml)$~', scandir($src_dir));

print_r($mp4_files);  // it doesn't print anything

print_r($xml_files);  // it doesnt print anything

问题陈述:

我想知道我需要在 Line#A 上进行哪些更改,以便我能够成功使用网络目录。在做 var_dump($src_dir); 它打印出bool(false)

【问题讨论】:

    标签: php scandir network-drive


    【解决方案1】:

    这对我有用:

    <?php
    
    $src_dir = '\\\ADMPC02-02\test';
    $is_dir = is_dir($src_dir); // returns true
    $mp4_files = preg_grep('~\.(mp4)$~', scandir($src_dir));
    $xml_files = preg_grep('~\.(xml)$~', scandir($src_dir));
    
    echo '<pre>';
    print_r($mp4_files); // lists all the mp4 files in my 'test' folder
    print_r($xml_files); // lists all the xml files in my 'test' folder
    

    您还应该确保:

    1. Network discovery 已开启
    2. Files and printers sharing 已开启
    3. 您的 music 文件夹是公开共享的,将为当前运行 PHP 的 Windows 用户提供所有必需的权限

    我希望这会有所帮助!

    【讨论】:

    • 我正在尝试使用您的代码。会告诉你它是否有效。
    • 我可以看到你使用了三个 \ 运算符\\\ADMPC02-02\test。对吗?
    • 我添加了var_dump($is_dir); 并返回了bool(false)
    • 我也添加了它,这就是我得到的:bool(true) Array ( [3] =&gt; b.mp4 ) Array ( [2] =&gt; a.xml )。我认为您的问题来自 PHP/Apache 无权访问此共享文件夹的事实。确保他们具有读取权限。
    • 我上面代码中music folder的读取权限?
    猜你喜欢
    • 2016-08-29
    • 2012-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-11-14
    • 1970-01-01
    相关资源
    最近更新 更多