我尝试在用户提交表单时在我的服务器上创建.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"
答案 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);
}