Php fwrite创建多个文件
我认为使用创建一个基于epoch的文件是获得一些仍然有用的唯一文件名的好方法。不幸的是。每次脚本运行时,我都会得到两个文件,一个是空白文件,另一个是包含数据的文件。如何让php在每次提交表单时只编写一个文件Php fwrite创建多个文件,php,file-io,fwrite,epoch,Php,File Io,Fwrite,Epoch,我认为使用创建一个基于epoch的文件是获得一些仍然有用的唯一文件名的好方法。不幸的是。每次脚本运行时,我都会得到两个文件,一个是空白文件,另一个是包含数据的文件。如何让php在每次提交表单时只编写一个文件 $t=time(); $dir = "tmp/"; $LogName = $t . ".txt"; $dicz = $dir.$LogName; $bunny = fopen( $dicz, 'w' ) or die('Cannot open file: '.$dicz); if( $
$t=time();
$dir = "tmp/";
$LogName = $t . ".txt";
$dicz = $dir.$LogName;
$bunny = fopen( $dicz, 'w' ) or die('Cannot open file: '.$dicz);
if( $bunny == false )
{
echo ( "Error in opening new file" );
exit();
}
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
我以前有过这个问题,今天又有了。我发现的问题是,大多数情况下,网站缺少一个
favicon.ico
。我知道这听起来很奇怪,但是浏览器会在你不知道的情况下发出两个请求,导致这种行为。这在铬合金中尤其普遍
将空白的favicon.ico
添加到站点的根目录中应该会立即修复它
你可以生成一个favicon 好的,这是您的代码:
$t=time();
$dir = "tmp/";
$LogName = $t . ".txt";
$dicz = $dir.$LogName;
$bunny = fopen( $dicz, 'w' ) or die('Cannot open file: '.$dicz);
if( $bunny == false )
{
echo ( "Error in opening new file" );
exit();
}
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
现在让我们关注这两条线:
$bunny = fopen( $dicz, 'w' ) or die('Cannot open file: '.$dicz);
if( $bunny == false )
如果您的fopen
附加了或die()
,那么$bunny
何时会等于false
也许你应该这样尝试:
$bunny = fopen( $dicz, 'w' );
if( $bunny == false )
{
echo ( "Error in opening new file" );
exit();
}
else {
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
}
或者只使用负数-(aka!file_exists()
)-检查文件是否存在:
$t=time();
$dir = "tmp/";
$LogName = $t . ".txt";
$dicz = $dir.$LogName;
if (!file_exists($dicz)) {
$bunny = fopen( $dicz, 'w' );
if( $bunny == false )
{
echo ( "Error in opening new file" );
exit();
}
else {
fwrite ($bunny, "FN:" .$FN .",TL:" . $TL .",EMAIL:". $EM ."\n");
}
}
这样,只有当文件确实不存在时,脚本才会写入该文件。我遇到了与javascript相同的问题。页面加载了两次,fopen收到两个不同的文件名作为参数。查看AD7six对原始消息的评论。我在脚本中没有看到任何可以解释所述行为的内容。我只能认为每次提交脚本都要运行两次。另外,不要忘记在完成时关闭()文件。实际上,经过进一步考虑,如果两个用户在一秒钟内使用表单,可能会发生冲突。Time()只有第二个分辨率。你应该使用适当的锁定来确保脚本不会相互干扰。
每次脚本运行时,我都会猜到2个文件,因为html会再次加载相同的页面,因为页面源中有一个错误的css/js/image/asset url。我认为这是一个很好的猜测。我来看看这不是一个100%错误的答案,但从编程的角度来说,我们可以很容易地预测到可能会创建两个文件的情况,并采取相应的行动。我完全同意。以我今天的问题为例。我已经准备好了所有的检查,准备好了复制品。但这并没有解决问题。直到我将favicon.ico放在根目录中,问题才得以解决。