我正在努力建立一个论坛。
我已经有了登录和注册,但我现在的问题是,我对如何为用户要创建的每个不同主题(线程)创建不同的文件没有一个想法。我的第一眼看到的是fopen()
函数,但在文件fwrite()
中写入时你无法添加html和php ...或者你可以吗?
所以,我确信它可以做到,但我真的不知道该怎么做。我想到我应该为线程创建什么样的数据库,以及我应该为评论创建什么样的数据库以及如何将它们连接在一起(例如:this thread has been created by: X
),但不知道如何为每个主题创建不同的文件。
任何想法都将不胜感激。谢谢你的阅读。如果您需要任何不同的细节,我很乐意将它们交给您。
答案 0 :(得分:2)
将所有数据存储在平面文件中可能不是最佳方法。当你有更多的人使用论坛时,你会遇到文件锁定和其他问题。
您可以将数据存储在各种数据库中。最常见的是,数据存储在关系数据库中,例如MySQL,SQLite,PostgreSQL和许多其他数据库。我的建议是尝试用其中一些来看看你喜欢什么。
另一方面,还有NoSQL解决方案(有时称为文档存储)。其中一些是:MongoDB,couchDB和simpleDB。这些不是关系性的,但我相信在应用于论坛时仍能正常运作。
至于构建代码,您可以执行以下操作:
名为thread.php
的文件。要请求线程,您可以执行:http://site.com/thread.php/1234/my-awesome-thread
,其中1234
是每个线程的唯一ID。
post.php
用户获取表单以提交新帖子或回复现有帖子。
话虽如此,这可能是编写应用程序最直接的方式。但是,就可维护性和代码重用而言,它可能不是最好的方法。如果应用程序要发展并变得非常大,那么投入时间来构建MVC(模型,视图,控制器)结构或使用现有的MVC框架可能会省去很多痛苦和麻烦。 :)