PHP笔记

news2025/3/3 4:33:31

1. 搭建运行环境

1.1 挂载光盘

[root@redhat200 ~]# mount /dev/sr0 /mnt

1.2 配置仓库

# 查看仓库列表
[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

仓库内容:

[base]
name=base
baseurl=/mnt/BaseOS
gpgcheck=0
[app]
name=app
baseurl=/mnt/AppStream
gpgcheck=0

1.3 安装PHP服务

[root@redhat200 yum.repos.d]# dnf -y install php*

1.4 安装Apache

# 安装 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 放行服务和端口

# 查看防火墙信息
[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 文件,它的编写格式为

<?php 
    内容 
?>
[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 中定义变量需要使用 $变量名 来声明。

<?php
        $a=5;
        $b=10;
        $c = $a + $b;
        echo $c;
?>

2.5 if语句

语法格式:

if (条件) {
        执行语句;
}else if (条件) {
        执行语句;
}else {
        执行语句;
}

2.6 switch语句

语法格式:

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

2.7 for循环

语法格式:

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

2.8 while循环

语法格式:

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

2.9 数组

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

$数组名称 = array(元素1,元素2,....,元素n);

使用示例:

<?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 函数

语法格式:

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

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

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

2.11 对象

声明一个类的语法格式:

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

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

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

<?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 参数,然后获取这个参数

<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

<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

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

3. 安装数据库

以 mariadb 数据库为例演示安装

# 安装数据库
[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 编写添加页面

[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 编写处理添加功能

<?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();
?>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1673579.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【antd + vue】Failed to resolve component: a-select-option

一、问题说明 1、出现情况&#xff1a; <a-select>嵌套<a-select-option>&#xff0c;其中<a-select-option>循环&#xff0c;能正常使用&#xff0c;但是控制台警告。 2、控制台警告&#xff1a; [Vue warn]: Failed to resolve component: a-select-op…

【电商API接口】网上商城接口/电商数据接口详情

比价接口背景&#xff1a;电商运营中&#xff0c;数据分析这项工作越来越重要&#xff0c;许多品牌方也越来越热衷去做电商数据分析。不过&#xff0c;全面的数据该如何获取呢&#xff0c;此时&#xff0c;电商数据接口的重要性便凸显出来了。 数据接口主要有以下特点&#xf…

GPT4o速测:约0.5秒延迟的多模态能力

文章目录 1. 测评2. IntroReference 没有剪辑&#xff0c;约0.5秒延迟的多模态能力。 1. 测评 推理速度异常快&#xff0c;比之前快了大概两三倍&#xff0c;对产品端来说是个很好的事情&#xff0c;想用gpt4级别性能终于可以少讨论几句时延影响用户体验了模型指令遵从能力变强…

哔哩哔哩直播通用榜单系统

榜单系统的定位和业务价值 榜单遍布B站直播相关业务的各个角落&#xff0c;直播打赏、直播间互动、付费玩法、互动玩法、活动、主播PK、语聊房、人气主播排名、高价值用户排名、增值集卡、up主充电等等&#xff0c;在这众多的业务场景中&#xff0c;我们能看到各种各样的榜单。…

idea 灵异事件之maven 缓存

方法一 mvn clean install 方法二 强制刷新maven 1 idea 右侧的maven 窗口&#xff1a; 方法三 强制刷新maven 2 右键项目&#xff1a; 上面虽然是重新导入Maven依赖&#xff0c;按理说&#xff0c;IDEA应该根据当前最新的pom.xml来导入依赖&#xff1b; Reload project操作…

Leetcode—2244. 完成所有任务需要的最少轮数【中等】

2024每日刷题&#xff08;136&#xff09; Leetcode—2244. 完成所有任务需要的最少轮数 实现代码 class Solution { public:int minimumRounds(vector<int>& tasks) {unordered_map<int, int> map;for(int task: tasks) {map[task];}int ans 0;// freq 1 …

青否数字人的应用场景有哪些?

数字人作为一种新兴技术&#xff0c;应用场景也非常广泛&#xff1a; 1. 企业宣传和营销&#xff1a;企业可以使用数字人制作形象宣传片或广告视频&#xff0c;吸引更多的客户和用户。 2. 教育培训&#xff1a;数字人可以在教育培训领域得到广泛应用&#xff0c;例如制作交互式…

idea配置MySQL提示

点击sql语句&#xff0c;然后再选择show context actions 然后再选择Inject language or reference 然后再选择MySQL 然后我们会发现sql语句变颜色了 如果表是红色 那么需要我们连接mysql的对于的数据库

2024淘宝天猫618凑单跨店满300减多少及618红包领取口令是什么?

2024年天猫618购物狂欢节全攻略 随着夏日的脚步临近&#xff0c;一年一度的天猫618年中大促也即将拉开帷幕。作为年中最大的购物狂欢节&#xff0c;天猫618不仅汇聚了众多优质商品&#xff0c;还准备了丰富的优惠活动和红包福利&#xff0c;让消费者在享受购物乐趣的同时&…

CSS 块状元素

还是大剑师兰特&#xff1a;曾是美国某知名大学计算机专业研究生&#xff0c;现为航空航海领域高级前端工程师&#xff1b;CSDN知名博主&#xff0c;GIS领域优质创作者&#xff0c;深耕openlayers、leaflet、mapbox、cesium&#xff0c;canvas&#xff0c;webgl&#xff0c;ech…

振弦式应变计的与实际测量值不一致怎么办

在进行结构健康监测或其他工程测量时&#xff0c;精确性和可靠性至关重要。振弦式表面应变计是一种广泛使用的测量工具&#xff0c;它通过测量材料表面的应变来评估结构的应力状态。然而&#xff0c;在实际应用中&#xff0c;振弦式应变计的测量值与实际应变值之间的不一致问题…

F5G-A万兆光网商用启航,挥动FTTR F50星光之翼,北京联通助力首都家庭飞向全光智慧时代...

2001年&#xff0c;王菲在发行的新歌《光之翼》中唱道&#xff1a;静静地按下电源开关/屏幕的色彩越来越亮/在虚拟的城市/找一个让心灵休息的地方/张开透明翅膀/朝着月亮飞翔/搜寻最美一个现世的天堂…… 将时间拨回千禧年&#xff0c;“看不见的城市”“伊托邦”“网络之城”&…

答辩PPT制作成本高?推荐3个aippt工具

这些网站我愿称之为制作答辩PPT的神&#xff01; 很多快要毕业的同学在做答辩PPT的时候总是感觉毫无思路&#xff0c;一窍不通。但这并不是你们的错&#xff0c;对于平时没接触过相关方面&#xff0c;第一次搞答辩PPT的人来说&#xff0c;这是很正常的一件事。一个好的答辩PPT…

携程网站_广州动物园景点评论采集和处理

一、爬取携程网站_广州动物园景点评论数据100条 数据包括&#xff1a;用户名、评论文本内容、发布时间</n> 结果分别保存在userNames&#xff0c;commentDetails commentTimes列表中。 import requests import json import time userNames [] commentDetails [] com…

数据结构-题目

1.已知一颗完全二叉树的第6曾&#xff08;设根为第1层&#xff09;&#xff0c;有8个结点&#xff0c;则完全二叉树的结点个数&#xff0c;最少和最多分别是多少&#xff1f; 因此最少为39&#xff0c;最多为111 2.假设一棵三叉树的结点数为50&#xff0c;则它的最小高度为&…

PE文件(五)代码节空白区添加代码

学习目的 本节的目的就是教会我们在一个可执行文件的代码节的空白区添加一段代码。 大致思路&#xff1a;正常的文件中OEP记录着程序入口的地址&#xff0c;现在我们将此可执行文件的程序入口OEP地址指向call0 x123456指令的地址&#xff0c;使其先执行我们添加的代码&#x…

中通云仓科技又开了十家冻品体验店,持续在新零售领域加码

5月12日&#xff0c;中通甄选十家冻品体验店联合开业仪式在山东青岛隆重举行&#xff0c;仪式现场金鼓喧闹、雄狮起舞。随着地爆球爆破&#xff0c;礼炮齐响&#xff0c;掌声四起&#xff0c;与会领导拿起金剪共同为此次开业剪彩。 在中通甄选冻品体验店内&#xff0c;人头攒动…

【机器学习】AI在空战决策中的崛起:从理论到实践的跨越

AI在空战决策中的崛起&#xff1a;从理论到实践的跨越 一、引言二、AI技术的崛起与空军决策技术层面作战结构 三、AI在空战决策中的前景展望四、结语 一、引言 随着科技的不断进步&#xff0c;现代战争已经步入了一个全新的时代。其中&#xff0c;空战作为战争的重要组成部分&a…

使用VSCode撰写Latex文档

参考资料&#xff1a; 如何使用VSCode编写Latex&#xff1f; 概要 先安装texlive,然后安装VSCode. 我这里步骤是全的&#xff0c;但说的不那么细。 只介绍VSCode中的配置方法。 VSCode配置步骤 1. 安装LaTex Workshop插件 2. 配置Latex编译环境 将下列配置粘入settings.j…

搜索整个文件夹的所有日志

grep request * 这里的*就是全部文件 grep -e A -e b" * grep -rine "关键字"