Php没有从javascript textarea写新换行符

时间:2017-09-26 02:26:13

标签: javascript php

我尝试在用户提交表单时在我的服务器上创建.txt文件。但是,注释textarea中的任何换行都不会反映在生成的.txt文件中。

这是我的代码:

的Javascript

function sendInfo(){
var name = document.getElementById("scenarioName").value;
var author = document.getElementById("author").value;
var email = document.getElementById("email").value;
var comments = document.getElementById("comments").value;

var urlString = "get_info.php?name="+name+"&author="+author+"&email="+email+"&comments="+comments;     

if (window.XMLHttpRequest)
  {// code for IE7+, Firefox, Chrome, Opera, Safari
  xmlhttp=new XMLHttpRequest();
  }
else
  {// code for IE6, IE5
  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
  }
xmlhttp.onreadystatechange=function()
  {
  if (this.readyState==4 && this.status==200)
    {
    document.getElementById("successParagraph").innerHTML=xmlhttp.responseText;
    }
  }
xmlhttp.open("GET",urlString,true);
xmlhttp.send();}

PHP

$content = $_GET['name']."\r\n".$_GET['author']."\r\n".$_GET['email']."\r\n".$_GET['comments'];
if(isset($_GET['name'])){
    $fp = fopen("files/".$_GET['name'].".txt","wb");
    fwrite($fp,$content);
    fclose($fp);
}

所以如果评论是:

"富

巴"

然后在文本文件中,这将是一行,阅读" foobar"

1 个答案:

答案 0 :(得分:0)

是的,我不知道为什么或如何,但我已经解决了这个问题。 问题似乎是php文件编写内容的方式,它似乎忽略了换行符。 所以我用换行符分割注释,并使用foreach循环将每一行写入文件。如此:

$content = $_POST['name']."\r\n".$_POST['author']."\r\n".$_POST['email']."\r\n";

$comments = split("\n",$_POST['comments']);

if(isset($_POST['name'])){
$fp = fopen("fine-uploader/files/".$_POST['name'].".txt","wb");
fwrite($fp,$content);
foreach($comments as $c){
    fwrite($fp,$c);
    fwrite($fp,"\r\n");
}
fclose($fp);
}