基本完成了iwas移植,但是准备放上演示站点的时候发现出现问题。
现象描述:
1、可以在本目录下创建文件
2、如果用FTP软件创建目录,同样可以创建、访问文件
3、如果用PHP MKDIR函数创建目录,则创建、访问文件失败
测试代码: www.shengfang.org
<html>
<body>
<?php
$u=umask(0);
mkdir("./33",0777);
umask($u); www.shengfang.org
$file="./90/count.inf";
$path=dirname("./33/count.txt");
//echo $path;
//chdir($path);
if( at !file_exists($file))
{ www.shengfang.org
$open=fopen($file,"a+");
$count=1;
$r=fwrite($open,$count);
fclose($open);
echo $count;
}
else
{
$open=fopen($file,"r");
$count=fread($open,filesize($file));
$count+=1;
$r=fwrite(fopen($file,"w+"),$count);
echo $count;
} www.shengfang.org
/*
//mkdir("./33",0777);
//chmod("./33",0777);
$fp= at fopen(" dot /33/233ex.html","w+");
echo "123".$fp; www.shengfang.org
at flock($fp,LOCK_EX);
$file_data=fwrite($fp,"234234234");
echo "qwer" dot $file_data;
fclose($fp);
//copy("233ex.html","./90/33303.html");
*/
?>
</body>
</html> www.shengfang.org
又用了它一个官方的计数器例子,结果也是如此:
<?php
echo "sdfsdf";
$countfile = "./33/ttt.txt";
if (($fp = fopen($countfile, "w+")) == false)
{ //用读写模式打开文件,若不能打开就退出
echo "err";
} www.shengfang.org
else
{
echo "ok";
}
?> 真是莫名其妙
虽然没有错误信息显示,不过估计是 Warning: fopen("user/simonwu", "w") - No such file or directory in 因为目录已经被创建了。 www.shengfang.org
bool mkdir ( string pathname [, int mode] )
尝试新建一个由 pathname 指定的目录。
注意也许你想用八进制数指定模式,也就是说该数应以零打头。模式也会被当前的 umask 修改,可以用 umask() 来改变。
resource fopen ( string filename, string mode [, int use_include_path [, resource zcontext]] )
fopen() 将 filename 指定的名字资源绑定到一个流上。如果 filename 是 "scheme://..." 的格式,则被当成一个 URL,PHP 将搜索协议处理器(也被称为封装协议)来处理此模式。如果该协议尚未注册封装协议,PHP 将发出一条消息来帮助检查脚本中潜在的问题并将 filename 当成一个普通的文件名继续执行下去。
如果 PHP 认为 filename 指定的是一个本地文件,将尝试在该文件上打开一个流。该文件必须是 PHP 可以访问的,因此需要确认文件访问权限允许该访问。如果激活了 安全模式 或者 open_basedir 则会应用进一步的限制。 www.shengfang.org