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 树莓派与pix飞控通信
  • ¥15 自动转发微信群信息到另外一个微信群
  • ¥15 outlook无法配置成功
  • ¥30 这是哪个作者做的宝宝起名网站
  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题