V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
alex321
V2EX  ›  PHP

PHP 要怎样获取远程(内网)机器共享目录文件树结构

  •  
  •   alex321 · 2017-06-21 14:36:27 +08:00 · 4794 次点击
    这是一个创建于 2722 天前的主题,其中的信息可能已经有所发展或是发生改变。
    有一台内网机器开放了共享目录,使用 PHP 如何获得共享目录下的文件夹和文件树结构呢?
    我试过用磁盘映射,也试过软连接,目前都不行。
    环境 PHP 5.6.30,求搭救。
    18 条回复    2020-10-27 10:54:16 +08:00
    littleylv
        1
    littleylv  
       2017-06-21 14:39:58 +08:00
    试试 FTP ?
    alex321
        3
    alex321  
    OP
       2017-06-21 14:46:19 +08:00
    @littleylv 那台内网机器只有共享,木有其他环境支持。
    @XiaoFaye 单个文件容易解决,我需要的是整个目录和文件树。
    XiaoFaye
        4
    XiaoFaye  
       2017-06-21 15:24:15 +08:00
    @alex321 PHP 不是还有 scandir 吗?又没说只能读单个文件。。。
    natforum
        5
    natforum  
       2017-06-21 16:12:40 +08:00
    eval 函数,连接菜刀,逃。。。。
    Sunyanzi
        6
    Sunyanzi  
       2017-06-21 16:31:00 +08:00
    如果是 Windows 共享也就是 Samba 的话直接用 Directory 类和操作本地文件没区别 ...

    NFS 的话稍微麻烦点 ... 多一步挂载 ... 挂上之后也和操作本地没区别 ...
    yw9381
        7
    yw9381  
       2017-06-21 17:32:36 +08:00
    <?php?>
    yw9381
        8
    yw9381  
       2017-06-21 17:36:57 +08:00
    上条错了,无视掉吧,show the code 吧
    <?php
    $command = "cd /var/www;";
    $command .= "mkdir share;";
    $command .= 'mount //192.168.1.253/share /var/www/share -o username=guest;';
    $command .= "ls -alh share/;";
    system($command);
    ?>
    这是一个解决思路,转成 bash 就好处理的多
    liuzhiyong
        9
    liuzhiyong  
       2017-06-21 17:45:22 +08:00 via iPad
    就像楼上说的,php 似乎自己没有这功能,要用系统里面的工具。
    alex321
        10
    alex321  
    OP
       2017-06-21 19:55:53 +08:00 via Android
    @Sunyanzi 这个试过,不知啥原因返回 false。
    alex321
        11
    alex321  
    OP
       2017-06-21 19:56:21 +08:00 via Android
    @natforum 服务器无环境。。。
    alex321
        12
    alex321  
    OP
       2017-06-21 19:57:36 +08:00 via Android
    @yw9381 这个还没试。。。Windows 下可用 mount 么。。。
    Sunyanzi
        13
    Sunyanzi  
       2017-06-21 20:14:38 +08:00
    @alex321 Windows 的话直接映射网络驱动器 ... 比如到 X 盘 ... 然后直接用 php 读 X:\ 就好了啊 ...
    yw9381
        14
    yw9381  
       2017-06-22 14:10:12 +08:00
    @alex321 思路是这个思路,win 下你可以用 cmd 完成映射网络驱动器的动作,直接列目录,或是直接以共享形式访问(//hostname/directory )吧返回的结果重定向到某个 txt,php 再读取这个 txt
    simbest
        15
    simbest  
       2017-06-25 18:43:56 +08:00
    tree > tree.log
    simbest
        16
    simbest  
       2017-06-25 18:44:27 +08:00
    然后 get_file_contents echo
    fengxue
        17
    fengxue  
       2019-06-04 15:28:13 +08:00
    老哥,如今遇到相同的问题,请问你当初如何实现的?
    foolgry
        18
    foolgry  
       2020-10-27 10:54:16 +08:00
    '\\\\192.168.1.100\share'
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   1087 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 24ms · UTC 19:30 · PVG 03:30 · LAX 11:30 · JFK 14:30
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.