fwrite - 在变量之后需要一个新行 - PHP

时间:2011-11-06 21:38:06

标签: php

当我的脚本写入文件时,它不会将添加的内容分解到新行。

Instead of:
user1:password1
user2:password2

It writes:
user1:password1user2:password2

最初,我的fwrite看起来像这个fwrite($ fh,$ data);通过搜索其他问题,我将代码更改为:

fwrite($fh, $data . "\n"); 

这似乎不起作用。

这是我的代码

<?php

if (isset($_POST['submit'])) 
{ 

$username = $_POST['user'];
$password = $_POST['password'];
$confirmpw = $_POST['confirmpw'];
$username = strtolower($username);


//Check if passwords match
if ($password != $confirmpw){
print "Passwords do not match, please try again.";
}
else{
//the data
$data = "$username:$password\n";

//open the file and choose the mode

$fh = fopen("passwd.txt", "a+");

// Cycle through the array
$match_found = false;

while (($buffer = fgets($fh, 4096)) !== false)
{
// Parse the line
list($usercheck, $passwordcheck) = explode(':', $buffer);
if (trim($usercheck) == $username)
{
    print "The username is already in our system.  Please use another one.";
    $match_found = true;
    break;
}
}

if(!$match_found)
{
fwrite($fh, $data . "\n");
// Set cookies for an hour
$hour = time() + 3600;
setcookie("username", $username, $hour);
//Redirect to home page
header("location: index.php");
}


}
//close the file

fclose($fh);


}


?>

4 个答案:

答案 0 :(得分:3)

您需要使用的是\r\n

答案 1 :(得分:2)

对我来说,只使用PHP_EOL(在Windows 7 php 5.3.8上的xampp)

答案 2 :(得分:0)

使用PHP_EOL作为平台相关的换行符。但是,\n实际上代表了* NIX世界中的换行符,但是一些Windows编辑拒绝将它们显示为换行符(这就是你的情况)。您应该考虑使用其他IDE并始终使用\n来实现兼容性(如果该文件应该可以在其他平台上使用)。

答案 3 :(得分:0)

“ \ r \ n”使用它代替它会像魅力