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
查看目录是,文件夹已经创建上了,生成部分静态页,第二次运行就什么问题都没有了,静态也全部生成成功,是不是创建文件夹和生成静态页是同步执行的呢,我想创建文件夹后在生成静态页,该怎么办呢,谢谢了 展开
<!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
查看目录是,文件夹已经创建上了,生成部分静态页,第二次运行就什么问题都没有了,静态也全部生成成功,是不是创建文件夹和生成静态页是同步执行的呢,我想创建文件夹后在生成静态页,该怎么办呢,谢谢了 展开
4个回答
展开全部
mkdir() [function.mkdir]: No such file or directory
以上这条警告说明你创建目录失败 判断目录是否存在最好使用is_dir函数
如果你保证路径没有问题 或使用php5或以上版本 并且目录有写权限 可以尝试使用mkdir($path,0777,true)来创建路径
29行和30行的错误 可能都是24行引起的
以上这条警告说明你创建目录失败 判断目录是否存在最好使用is_dir函数
如果你保证路径没有问题 或使用php5或以上版本 并且目录有写权限 可以尝试使用mkdir($path,0777,true)来创建路径
29行和30行的错误 可能都是24行引起的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
不会同步执行,肯定是按照上下顺序执行的。
你的$path是不是有问题,在数据库里读出来的那个
你的$path是不是有问题,在数据库里读出来的那个
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要确保 $path 是路径 而不是文件
先创建文件夹 再创建文件就行
先创建文件夹 再创建文件就行
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询