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 slaris 系统断电后,重新开机后一直自动重启
  • ¥15 QTableWidget重绘程序崩溃
  • ¥15 51寻迹小车定点寻迹
  • ¥15 谁能帮我看看这拒稿理由啥意思啊阿啊
  • ¥15 关于vue2中methods使用call修改this指向的问题
  • ¥15 idea自动补全键位冲突
  • ¥15 请教一下写代码,代码好难
  • ¥15 iis10中如何阻止别人网站重定向到我的网站
  • ¥15 滑块验证码移动速度不一致问题
  • ¥15 Utunbu中vscode下cern root工作台中写的程序root的头文件无法包含