用PHP编写一个论坛

首先/首要

因为对编程感兴趣,所以在Udemy上购买了Web开发课程,进行了大约3天的实践学习。于是我想尝试制作一个论坛,并决定将其作为一篇文章输出,好好展示一下自己的成果。这是我第一次尝试编程,希望能得到您温柔的指导。m(_ _)m

环境

PHP 7.2.1
MAMP
参考网站
https://dotinstall.com/lessons/bbs_php_v2

任务

在MAMP的htdocs目录下创建一个php文件。
使用HTML来创建界面
bbs.jpg

是的,就是这样。

在htdocs目录下创建数据文件(bbs.dat)。
使用PHP实现
index2.jpg

尽管已经实施了,但由于我完全不了解PHP语法,所以需要逐步进行检查。

・$是一个变量。

$_SERVER[‘REQUEST_METHOD’] 是在访问页面时使用的请求方法的名称,可以是’GET’, ‘HEAD’, ‘POST’, ‘PUT’等。

・$_POST是一个超全局变量(那是什么?感觉像是一个很厉害的变量啊,像是关联数组是什么感觉)。

・\t和\n分别代表制表符和换行符(为什么它们是必需的?)

使用fopen函数打开文件时,可以向fopen($dataFile, ‘a’)中的参数列表中分别指定要打开的文件和模式。模式的选项有’a’,’r’,’w’,分别代表追加、读取和写入模式。

用fwrite($fp, $newData)函数将数据以二进制模式写入文件中。(也就是说将$newData写入到$fp中)

・关闭文件($fp);与fopen配对使用。打开了就要关闭,否则会惹怒父母。

`

`标签的`action`属性指定了在按下提交按钮后发送数据的目标。

・method属性用于指定数据传输的传送方式。

另外,有POST和GET两种方式,POST会将输入的表单内容存储在不同的位置,并发送数据。安全吗?
而GET则会将输入的表单内容的数据附加在URL上然后发送。类似谷歌的方式吗?

确认是否可以写入
bbs1.jpg
data.jpg
进一步编辑
index3.jpg

isset是一个函数,用于检查变量是否已设置且不为NULL。

「trim」是指修剪。例如,当想要修剪脸部时使用它。

・如果$message不为空,则意味着消息不为空。

$user = ($user === ”) ? ‘anonymous’ : $user;

这个意味就是,如果$user的值是空的,那么赋值为“anonymous”,否则保持原样。请问这是什么语法或者函数?请告诉我。

展示时间
index4.jpg

设定 date_default_timezone_set(‘Asia/Tokyo’); 可以获得当前时间。

・ $postedAt = date(‘Y-m-d H:i:s’); 使用date函数存储。

通过添加 “\t”. $postedAt. 将时间显示在论坛上。

顺便提一下,
str_replace在处理制表符方面我不太清楚,不是特别懂。

data1.jpg
展示投稿数据
index5.jpg

htmlspecialchars($s, ENT_QUOTES, ‘UTF-8’)似乎是将特殊字符转换为HTML实体的功能。

据说ENT_QUOTES可以转换双引号和单引号的两种类型的引号…

请问老师,这段代码的含义是使用htmlspecialchars函数将$s中的UTF-8双引号和单引号进行转换,然后将其存储,并通过h()进行调用,是这样吗?请您告诉我确认一下。

index6.jpg

・FILE_IGNORE_NEW_LINES会在数组的每个元素的末尾添加换行字符。(这是什么意思?不加也可以吧?)

是用于对数组进行迭代处理的函数。foreach只能用于数组和对象,对于其他数据类型或未初始化的变量使用会导致错误。

在这里,将存入$posts的数组以$post的形式执行。


list() 函数:使用类似数组的格式,对多个变量进行赋值
explode() 函数:将字符串根据指定的字符串进行分割

在 $post 中,使用 explode() 函数将 list() 接收的每个变量中的制表符进行分割,可以吗?

()-,这个h()函数到底代表什么意思?

結束

广告
将在 10 秒后关闭
bannerAds