我对PHP比较陌生,我正在尝试运行一个小脚本。我有一个VB .net程序,它使用以下函数发布数据。
Public Sub PHPPost(ByVal User As String, ByVal Score As String)
Dim postData As String = "user=" & User & "&" & "score=" & Score
Dim encoding As New UTF8Encoding
Dim byteData As Byte() = encoding.GetBytes(postData)
Dim postReq As HttpWebRequest = DirectCast(WebRequest.Create("http://myphpscript"), HttpWebRequest)
postReq.Method = "POST"
postReq.KeepAlive = True
postReq.ContentType = "application/x-www-form-urlencoded"
postReq.ContentLength = byteData.Length
Dim postReqStream As Stream = postReq.GetRequestStream()
postReqStream.Write(byteData, 0, byteData.Length)
postReqStream.Close()
End Sub
其中“myphpscript”实际上是PHP脚本的完整URL。基本上我正在尝试将“User”变量和“Score”变量发布到PHP脚本。我试过的脚本如下:
<?php
$File = "scores.rtf";
$f = fopen($File,'a');
$name = $_POST["name"];
$score = $_POST["score"];
fwrite($f,"\n$name $score");
fclose($f);
?>
“scores.rtf”不会改变。任何帮助,将不胜感激。提前谢谢,我是PHP的新手。
答案 0 :(得分:0)
“scores.rtf”不会改变。
RTF文件的处理方式不同,因为它不是纯粹的文本文件,它包含控制文本在rtf文件上的显示方式的元数据和标记。请有时间阅读以下来源
http://www.webdev-tuts.com/generate-rtf-file-using-php.html
http://paggard.com/projects/doc.generator/doc_generator_help.html
如果您想要普通文本文件,可以使用下面的代码,请不要使用fwrite()
,请使用file_put_contents()
file_put_contents("scores.txt", "\n$name $score");
答案 1 :(得分:0)
确保您的脚本正在接收POST变量。
http://php.net/manual/en/function.file-put-contents.php
你可以试试file_put_contents,它结合了fopen,fwrite和amp;的使用。 FCLOSE。
使用像isset / empty这样的东西来检查写作之前是否有东西是明智的。
<?php
$file = 'scores.rtf';
// Open the file to get existing content
$current = file_get_contents($file);
// Append a new person to the file
$current .= print_r($_POST);
//Once confirmed remove the above line and use below
$current .= $_POST['name'] . ' ' . $_POST['score'] . "\n";
// Write the contents back to the file
file_put_contents($file, $current);
?>
另外,完全忽略了RTF部分,一定要看看Mahan提到的内容。如果您不需要特定的文件类型,我建议您使用上述内容。