PHP笔记

1. 搭建运行环境

1.1 挂载光盘

bash 复制代码
[root@redhat200 ~]# mount /dev/sr0 /mnt

1.2 配置仓库

bash 复制代码
# 查看仓库列表
[root@redhat200 ~]# dnf repolist

# 进入到仓库目录
[root@redhat200 ~]# cd /etc/yum.repos.d/
# 编辑仓库文件
[root@redhat200 yum.repos.d]# vim base.repo
# 查看仓库内容
[root@redhat200 yum.repos.d]# cat base.repo 

# 生成缓存
[root@redhat200 yum.repos.d]# dnf makecache

仓库内容:

bash 复制代码
[base]
name=base
baseurl=/mnt/BaseOS
gpgcheck=0
[app]
name=app
baseurl=/mnt/AppStream
gpgcheck=0

1.3 安装PHP服务

bash 复制代码
[root@redhat200 yum.repos.d]# dnf -y install php*

1.4 安装Apache

bash 复制代码
# 安装 apache 软件,其实就是安装 httpd 服务
[root@redhat200 yum.repos.d]# dnf -y install httpd
​
# 启动服务
[root@redhat200 yum.repos.d]# systemctl start httpd
​
# 查看 80 端口是否已经启动
[root@redhat200 yum.repos.d]# ss -lntup | grep 80
​
# 进入http服务的目录下
[root@redhat200 html]# cd /var/www/html

# 编写index.php页面
[root@redhat200 html]# echo "hello php" > index.php

1.5 放行服务和端口

bash 复制代码
# 查看防火墙信息
[root@redhat200 html]# firewall-cmd --list-all

# 将 http 服务加入到防火墙列表中
[root@redhat200 html]# firewall-cmd --permanent --add-service=http

# 将80端口加入到防火墙列表中
[root@redhat200 html]# firewall-cmd --permanent --add-port=80/tcp

# 重新加载防火墙,让上面的配置生效
[root@redhat200 html]# firewall-cmd --reload

# 查看防火墙列表信息
[root@redhat200 html]# firewall-cmd --list-all

1.6 运行测试

打开浏览器,输入 http:ip 可以看到页面内容则表示配置成功

2. PHP基础

2.1 基本语法

一个 php 文件,它的编写格式为

bash 复制代码
<?php 
    内容 
?>
bash 复制代码
[root@redhat200 html]# cat index.php
<hmtl>
<head>
<meta char="utf-8"/>
<title>php</title>
</head>
<body>
<?php
    echo "hello php";
?>
</body>
</html>

2.2 注释

  • 单选注释:// 注释内容
  • 多行注释: /* 注释内容 */

2.3 变量

在 PHP 中定义变量需要使用 $变量名 来声明。

bash 复制代码
<?php
        $a=5;
        $b=10;
        $c = $a + $b;
        echo $c;
?>

2.5 if语句

语法格式:

bash 复制代码
if (条件) {
        执行语句;
}else if (条件) {
        执行语句;
}else {
        执行语句;
}

2.6 switch语句

语法格式:

bash 复制代码
switch(表达式) {
case 情况1:
    执行语句;
    break;
case 情况2:
    执行语句;
    break;
case 情况3:
    执行语句;
    break;
default:
    执行语句;
    break;
}

2.7 for循环

语法格式:

bash 复制代码
for (初始值; 条件; 增量) {
    要执行的代码;
}

2.8 while循环

语法格式:

bash 复制代码
while (条件){
    要执行的代码;
} 

2.9 数组

在 PHP 中定义数组需要使用 array() 函数来声明,在这个函数中定义数组中的元素。

bash 复制代码
$数组名称 = array(元素1,元素2,....,元素n);

使用示例:

bash 复制代码
<?php
$arr = array(1,2,3,4,5);
echo $arr[0] . ", " . $arr[1] . ", " . $arr[2] . "<br>";
​
for($i=0; $i<count($arr); $i++) {
        echo $arr[$i] . "<br>";
}
​
echo "-----------------<br>";
​
?>

2.10 函数

语法格式:

bash 复制代码
function functionName($fname) {
    要执行的代码;
}

使用示例:定义一个函数,用户计算给定参数的阶乘

bash 复制代码
<?php
$i=5;
​
function factorial($num) {
        if ($num == 1)
                return 1;
        else
                return $num*factorial($num-1);
}
​
echo factorial($i);
?>

2.11 对象

声明一个类的语法格式:

bash 复制代码
<?php
class phpClass {
  var $var1;
  var $var2 = "constant string";
  
  function myfunc ($arg1, $arg2) {
     [..]
  }
  [..]
}
?>

注意:调用类的方法也需要使用 -> 来进行调用

例如,我们声明一个 Site 类,在这个类别定义 url 和 title 属性,并定义一些给属性设置的方法以及获取这些属性值的方法。

bash 复制代码
<?php
class Site {
  /* 成员变量 */
  var $url;
  var $title;
  
  /* 成员函数 */
  function setUrl($par){
     $this->url = $par;
  }
  
  function getUrl(){
     echo $this->url . PHP_EOL;
  }
  
  function setTitle($par){
     $this->title = $par;
  }
  
  function getTitle(){
     echo $this->title . PHP_EOL;
  }
}
$site = new Site();

$site->setUrl("http://www.baidu.com");
$site->setTitle("baidu");

echo $site->getUrl();
echo $site->getTitle();
?>

2. 表单

PHP 中的 _GET 和 _POST 变量用于检索表单中的信息,比如用户输入。

2.1 GET请求

1)编写一个链接,在这个链接上我们传一个 id 参数,然后获取这个参数

bash 复制代码
<html>
<head>
<meta charset="utf-8"/>
<title>aaa</title>
</head>
<body>
<a href="get.php?id=<?php echo $_GET["id"]; ?>">click me<?php echo $_GET["id"]; ?></a>
</body>
</html>

2)使用时,我们在浏览器的地址栏中输入 http://IP/get.php?id=100

2.2 POST请求

1)编写一个表单页面 index.php

bash 复制代码
<html>
<head>
<meta charset="utf-8"/>
<title>form</title>
</head>
<body>
<form action="handle.php" method="post">
account: <input type="text" name="account" placeholder="please input your account"/><br>
password: <input type="password" name="password" placeholder="please input your password"/><br>
<input type="submit" value="login"/>
<input type="reset" value="cancel"/>
</form>
</body>
</html>

2)编写接收表单数据的处理程序 handle.php

bash 复制代码
<?php
​
$account = $_POST["account"];
$password = $_POST["password"];
​
if ("admin" == $account && "123" == $password) {
        echo "login success";
} else {
        echo "account error or password error";
}
?>

3. 安装数据库

以 mariadb 数据库为例演示安装

bash 复制代码
# 安装数据库
[root@redhat200 html]# dnf -y install mariadb mariadb-server

# 启动数据库
[root@redhat200 html]# systemctl start mariadb

# 查看端口号
[root@redhat200 html]# ss -lntup | grep 3306    

# 登录数据库
[root@redhat200 html]# mysql -uroot -p
Enter password: #直接回车,不要输入密码,默认为空密码

# 修改root用户的密码
MariaDB [(none)]> alter user 'root'@'localhost' identified by '123456';

# 退出数据库
MariaDB [(none)]> exit;

# 重新使用用户名 root 和密码 123456 来登录数据库
[root@redhat200 html]# mysql -uroot -p123456

4. PHP+MYSQL

4.1 编写添加页面

bash 复制代码
[root@redhat200 html]# vim add.php 
[root@redhat200 html]# cat add.php 
<html>
<head>
<meta charset="utf-8"/>
<title>add user</title>
</head>
<body>
<center><h1>添加用户</h1></center>
<form action="addUser.php" method="post">
姓名: <input type="text" name="name" placeholder="请输入姓名"/><br>
年龄: <input type="text" name="age" placeholder="请输入年龄"/><br>
<input type="submit" value="添加"/>
<input type="reset" value="取消"/>
</form>
</body>
</html>

4.2 编写处理添加功能

bash 复制代码
<?php
​
$name = $_POST["name"];
$age = $_POST["age"];
​
/*
mysqli函数的参数说明:
第一个参数是连接数据库的 IP 地址,当然也可以加端口号, 如果端口号为 3306,可以不用写
第二个参数是连接数据库的用户名
第三个参数是连接数据库的密码
第四个参数是要操作的数据库名称
*/
$conn = new mysqli("localhost", "root", "123456", "openlab");
​
if ($conn->connect_error) {
    die("Connection failed: " . $conn->connect_error);
}
​
$sql = "insert into t_user(name, age) values('".$name."', $age)";
​
if ($conn->query($sql) == TRUE) {
        echo "add user $name success";
} else {
        echo "Error: " . $sql . "<br>" . $conn->error;
}
​
$conn->close();
?>
相关推荐
兴趣使然_2 小时前
【笔记】使用 html 创建网址快捷方式
笔记·html·js
aramae4 小时前
C++ -- STL -- vector
开发语言·c++·笔记·后端·visual studio
fen_fen4 小时前
学习笔记(32):matplotlib绘制简单图表-数据分布图
笔记·学习·matplotlib
饕餮争锋8 小时前
设计模式笔记_创建型_建造者模式
笔记·设计模式·建造者模式
萝卜青今天也要开心8 小时前
2025年上半年软件设计师考后分享
笔记·学习
吃货界的硬件攻城狮9 小时前
【STM32 学习笔记】SPI通信协议
笔记·stm32·学习
蓝染yy9 小时前
Apache
笔记
lxiaoj11110 小时前
Python文件操作笔记
笔记·python
半导体守望者11 小时前
ADVANTEST R4131 SPECTRUM ANALYZER 光谱分析仪
经验分享·笔记·功能测试·自动化·制造
啊我不会诶12 小时前
倍增法和ST算法 个人学习笔记&代码
笔记·学习·算法