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();
?>
相关推荐
黑叶白树33 分钟前
简单的签到程序 python笔记
笔记·python
幸运超级加倍~1 小时前
软件设计师-上午题-15 计算机网络(5分)
笔记·计算机网络
芊寻(嵌入式)2 小时前
C转C++学习笔记--基础知识摘录总结
开发语言·c++·笔记·学习
准橙考典3 小时前
怎么能更好的通过驾考呢?
人工智能·笔记·自动驾驶·汽车·学习方法
密码小丑4 小时前
11月4日(内网横向移动(一))
笔记
鸭鸭梨吖5 小时前
产品经理笔记
笔记·产品经理
齐 飞6 小时前
MongoDB笔记01-概念与安装
前端·数据库·笔记·后端·mongodb
丫头,冲鸭!!!6 小时前
B树(B-Tree)和B+树(B+ Tree)
笔记·算法
听忆.6 小时前
手机屏幕上进行OCR识别方案
笔记
Selina K7 小时前
shell脚本知识点记录
笔记·shell