当我的脚本写入文件时,它不会将添加的内容分解到新行。
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);
}
?>
答案 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”使用它代替它会像魅力