2011-05-06 152 views
1

下面的脚本不执行:这个PHP脚本有什么问题?

<?php 

    $year = date(Y); 
    $month = date(M); 
    $dirloc = "/images/".$year."/".$month; 
    mkdir($dirloc, 0700); 

?> 

为什么?

谢谢

+0

ps这是我的第一个问题 – faq 2011-05-06 22:59:05

+0

你有权限创建一个新目录吗? – 2011-05-06 22:59:44

+1

你有什么样的错误? – 2011-05-06 23:00:00

回答

2

你忘了引号:

<?php 

$year = date("Y"); 
$month = date("M"); 
$dirloc = "/images/".$year."/".$month; 
mkdir($dirloc, 0700); 

?> 
+5

这不应该导致错误,因为每个非定义的常量都被视为一个字符串。 – KingCrunch 2011-05-06 23:02:11

+0

今天在这里学到了另一件事:-) +1 upvote – 2011-05-06 23:12:01

+0

@PENDO:只要启用'E_NOTICE';)'PHP注意:使用未定义的常量A - 假设'A''(用于开发更好的'E_ALL | E_STRICT'。 ) – KingCrunch 2011-05-06 23:31:10

1

使用引号的date()函数:

$year = date("Y"); 
$month = date("M"); 
6

您提供的路径是绝对的,你可能没有在那里创建目录或文件的权利。如果你想创建在当前工作目录(您从脚本中的一个)的目录,尝试

$dirloc = "images/".$year."/".$month; 

而且现在看来,要创建多个文件夹。如果父文件夹不存在,mkdir失败,如果您不允许它递归地创建父项。

mkdir($dirloc, 0700, true); 
        // = recursive 
+0

是的,谢谢你的帮助 – faq 2011-05-06 23:08:03

+1

@ user725097:如果这是最好的答案,请接受它(使用复选标记)。 – webbiedave 2011-05-06 23:09:21

+0

会很有趣,downvoter有什么批评... – KingCrunch 2011-05-06 23:26:15