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();
?>
相关推荐
朝新_1 小时前
【EE初阶】JVM
java·开发语言·网络·jvm·笔记·算法·javaee
牛马大师兄3 小时前
STM32实现低功耗管理使用配置知识梳理笔记
笔记·stm32·单片机·嵌入式硬件·物联网·低功耗
chushiyunen5 小时前
neo4j图数据库笔记
数据库·笔记·neo4j
丰锋ff5 小时前
2005 年真题配套词汇单词笔记(考研真相)
笔记
摇滚侠6 小时前
Spring Boot3零基础教程,生命周期启动加载机制,笔记64
spring boot·笔记
摇滚侠6 小时前
Spring Boot3零基础教程,整合 Redis,笔记69
spring boot·redis·笔记
JJJJ_iii6 小时前
【机器学习08】模型评估与选择、偏差与方差、学习曲线
人工智能·笔记·python·深度学习·学习·机器学习
CosimaLi6 小时前
CMake学习笔记
笔记·学习
岑梓铭7 小时前
《考研408数据结构》第六章(5.1+5.2+5.3树、二叉树、线索二叉树)复习笔记
数据结构·笔记·考研·408·1024程序员节
摇滚侠8 小时前
全面掌握 PostgreSQL 关系型数据库,PostgreSQL 介绍,笔记02
数据库·笔记·postgresql