我如何使用php,以便当用户按下特定按钮时,他们可以写入特定的.txt文件?

时间:2011-04-06 23:58:14

标签: php chat

基本上,正如我在其他问题中提到的与我的php聊天应用程序相关的问题,我试图得到它,以便有一个文本字段,其中$ msg通过msg.txt显示。两个用户可以这种方式与另一个用户通信。如果我想使用简单的include函数,这将很容易。但我不想麻烦地把所有这些页面上传到我的服务器。那么,当用户(名为Aaron)点击标题为Benjamin的按钮并键入一个名为aaronbenjamin.txt的文件时,如果Aaron想要与另一个用户交谈,他可以按下标题为Chris的按钮。 ,并键入名为aaronchris.txt的文件?所有来自同一个框和文本字段?谢谢,我很感激。

编辑:这是我的代码 -

http://key-mail.zxq.net/msg.txt

2 个答案:

答案 0 :(得分:1)

嗯,关于你的评论,你应该了解using forms with PHP。如果您完全阅读该教程,它应该回答您关于表单和php的所有问题。

至于将其写入不同的文本文件,因为您似乎担心“上传所有这些页面”,您会很高兴知道这是一个简单的解决方案!

有一个名为file_put_contents的函数,它将创建或写入文件。

因为你是PHP的新手(ish),这是一个例子:

<?php

$file = 'hello.txt';
$text = 'Hello World!';

file_put_contents($file, $text);

?>

这会将$text变量的内容放入名称存储在$file的文件中。

使用file_get_contents从文件中读取同样容易。

假设文件hello.txt之前存在且内容相同,您可以使用以下代码从文件中读取并输出其内容:

<?php

$file = 'hello.txt';

echo(file_get_contents($file));

?>

这将显示$ file的内容。

现在,进入问题的细节,如果您的表单设置了“to”和“from”GET变量,其中“to”已经是您的用户名,那么以下代码会将值写入“消息”中根据您提供的模式将变量GET放入文件中:

<?php

$to = addslashes($_GET['to']);
$from = addslashes($_GET['from']);
$msg = addslashes($_GET['message']);
//addslashes is used as a small security measure

$file = $to . $from . '.txt';
file_put_contents($file, $msg);

?>

这将从GET数组中获取变量,在某种程度上清理它们,设置文件名,并将消息写入文件。

如果您对此的具体部分有任何疑问,或者您希望我详细了解,请随时询问!

答案 1 :(得分:1)

这是写入文件的方法: http://php.net/manual/en/function.fopen.php

你最好还是使用数据库。

要使不同的链接执行不同的操作,您可以按照建议使用AJAX,也可以使用GET变量在PHP端路由函数。后者更容易,但意味着您需要在用户按下按钮后重新加载页面。

这是一个小小的演示:

<a href="thispage.php?clicked=1">click here</a>

然后在php的页面顶部:

 if($_GET['clicked']==1){--write to file1---}
 else if($_GET['clicked']==2){--write to file2---}

希望有所帮助