dpgu5074 2014-10-19 12:29
浏览 119
已采纳

mkdir在../中创建一个文件夹 - 无法打开流

Folder structure (windows)

[root] level 0
      - [lib] level 1
        - core.php
      - [logs] level 1
         -[preg_match number] level 2
          - preg_match number.log
      - [ajax] level 1
         - log_gen.php
      - log_gen_root.php 
[/root]

lib/core.php fragment of the generator

if (preg_match('~\d{24}~', $fname, $m)){
//var_dump($m[1]);
    if (!file_exists('logs/'.$m[0])) {
    mkdir('logs/'.$m[0], 0777, true);
}
}

I have located in lib/core.php the mkdir function, the preg_match gets the number ( as $fname ) and returns the number ( as $m[0] ).. There are two options

$fname equal to : variant 1. First variant is created from the root folder for example log_gen_root.php, everything works here

logs/544444466666666666666667/544444466666666666666667.log

$fname equal to : variant 2. The second variant is when I try to access the same mkdir from location ajax/log_gen.php which results in an error. In both cases the log folder is placed in root.

../logs/544444466666666666666666/544444466666666666666666.log

Warning: file_put_contents(../logs/544444466666666666666666/544444466666666666666666.log): failed to open stream: No such file or directory in C:\xampp\htdocs\proj\lib\core.php on line 103

  • 写回答

1条回答 默认 最新

  • doucai5315 2014-10-19 12:34
    关注

    Two things could be happening here:

    1. You don't have the correct permissions on the lib directory to create a new folder
    2. Your path is incorrect.

    Try using the below code to grab the directory instead of using relative paths.

    $folder = realpath(__DIR__ . '/..') . '/lib/';
    
    if (!file_exists($folder . $m[0])) {
        mkdir($folder . $m[0], 0777, true);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 poi合并多个word成一个新word,原word中横版没了.
  • ¥15 【火车头采集器】搜狐娱乐这种列表页网址,怎么采集?
  • ¥15 求MCSCANX 帮助
  • ¥15 机器学习训练相关模型
  • ¥15 Todesk 远程写代码 anaconda jupyter python3
  • ¥15 我的R语言提示去除连锁不平衡时clump_data报错,图片以下所示,卡了好几天了,苦恼不知道如何解决,有人帮我看看怎么解决吗?
  • ¥20 关于URL获取的参数,无法执行二选一查询
  • ¥15 液位控制,当液位超过高限时常开触点59闭合,直到液位低于低限时,断开
  • ¥15 marlin编译错误,如何解决?
  • ¥15 VUE项目怎么运行,系统打不开