文件夹结构(窗口)
[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片段
if (preg_match('~\d{24}~', $fname, $m)){
//var_dump($m[1]);
if (!file_exists('logs/'.$m[0])) {
mkdir('logs/'.$m[0], 0777, true);
}
}
我在lib / core.php中找到mkdir函数,preg_match获取数字(作为$ fname)并返回数字(作为$ m [0])..有两个选项
$ fname等于:变体1。 第一个变体是从根文件夹创建的,例如log_gen_root.php,一切都在这里工作
logs/544444466666666666666667/544444466666666666666667.log
$ fname等于:变体2。 第二个变体是当我尝试从位置ajax / log_gen.php访问相同的mkdir时导致错误。在这两种情况下,日志文件夹都放在root中。
../logs/544444466666666666666666/544444466666666666666666.log
警告:file_put_contents(../ logs / 544444466666666666666666 / 544444466666666666666666.log):无法打开流:第103行的C:\ xampp \ htdocs \ proj \ lib \ core.php中没有此类文件或目录
答案 0 :(得分:1)
这里可能发生两件事:
lib
目录上没有正确的权限来创建新文件夹尝试使用以下代码来获取目录,而不是使用相对路径。
$folder = realpath(__DIR__ . '/..') . '/lib/';
if (!file_exists($folder . $m[0])) {
mkdir($folder . $m[0], 0777, true);
}