Php新手,请教使用mkdir创建文件夹为什么不能马上使用呢

我把数据从数据库取出来,然后根据模版生成静态也,在生成的过程中,要根据日期字段创建文件夹,可是文件夹还没创建完,就生成静态页了,导致找不到文件夹,生成静态也失败,代码如下... 我把数据从数据库取出来,然后根据模版生成静态也,在生成的过程中,要根据日期字段创建文件夹,可是文件夹还没创建完,就生成静态页了,导致找不到文件夹,生成静态也失败,代码如下

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>无标题文档</title>
</head>
<body>
<?php require_once("inc/conn.php");?>
<?php
$fp=fopen("disp_article.html","r");
$str=fread($fp,filesize("disp_article.html"));
fclose($fp);
$hou=".html";
$sql="select * from d_article d,s_type s where s.name='java' and d.type_id=s.id ";
$result=mysql_query($sql);

while($rs=mysql_fetch_row($result)){
$str=str_replace("{title}",$rs[2],$str);
$str=str_replace("{content}",$rs[6],$str);
$dir="./java/";
$path=$dir.str_replace("-","",$rs[4]);

if(!file_exists($path)){
mkdir($path,0777);
}

echo file_exists($path);
echo "<br>";
$handle=fopen($path."/".$rs[0].$hou,"w");
fwrite($handle,$str);
fclose($handle);

}

mysql_close($conn);
?>
</body>
</html>

第一次运行这个页面提示
Warning: mkdir() [function.mkdir]: No such file or directory in C:\Users\dwy\Desktop\php\htdocs\w.php on line 24

Warning: fopen(./java/20090909/1.html) [function.fopen]: failed to open stream: No such file or directory in C:\Users\dwy\Desktop\php\htdocs\w.php on line 29

Warning: fwrite(): supplied argument is not a valid stream resource in C:\Users\dwy\Desktop\php\htdocs\w.php on line 30

查看目录是,文件夹已经创建上了,生成部分静态页,第二次运行就什么问题都没有了,静态也全部生成成功,是不是创建文件夹和生成静态页是同步执行的呢,我想创建文件夹后在生成静态页,该怎么办呢,谢谢了
展开
 我来答
anonymous444
2009-09-04 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:101
采纳率:0%
帮助的人:119万
展开全部
mkdir($path,0777); 不能同时建两级目录.
把你的这一行,换成:
$i = 0;
while (!@mkdir($path, 0777)) {
if (is_dir($path)) break;
$i ++;
if (@mkdir($path . str_repeat("/..", $i), 0777)) $i = 0;
}
这样的试试.
sanders_yao
2009-09-10
知道答主
回答量:2
采纳率:0%
帮助的人:0
展开全部
mkdir() [function.mkdir]: No such file or directory
以上这条警告说明你创建目录失败 判断目录是否存在最好使用is_dir函数
如果你保证路径没有问题 或使用php5或以上版本 并且目录有写权限 可以尝试使用mkdir($path,0777,true)来创建路径
29行和30行的错误 可能都是24行引起的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
cartli
2009-09-04 · TA获得超过291个赞
知道小有建树答主
回答量:292
采纳率:0%
帮助的人:242万
展开全部
不会同步执行,肯定是按照上下顺序执行的。
你的$path是不是有问题,在数据库里读出来的那个
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友8c7585c1d
2009-09-09 · TA获得超过119个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:107万
展开全部
你要确保 $path 是路径 而不是文件
先创建文件夹 再创建文件就行
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 2条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式