php入门教程(超详细,一篇就够了!!!)

前言

本章节主要学习PHP概念、PHP环境搭建、基本语法、PHP函数、PHP文件管理、PHP操作MySQL数据库等知识点,收录于PHP基础系列。该系列主要讲解PHP相关知识点,欢迎童鞋们互相交流。觉得不错可以三连订阅喔。
目录

一 概述
二 环境搭建
1. 开发环境
2. 使用小皮面板运行PHP程序
3. 开发工具
三 语法
1. 创建php文件
2. 格式
3. 注释
4. HelloWord
四 变量
五 数据类型
1. 字符串
2. 整数
3. 小数(浮点数)
4. 布尔
5. PHP 对象 (Object)
6. null值
六 运算符
1. 算数运算符
2. 赋值运算符
3. 递增递减运算符
4. 比较运算符
5. 逻辑运算符
七 流程控制语句
八 数组
1. 创建数组并读取数据
2. 获取数组长度
3. 遍历数组
九 函数
1. 函数名
2. 参数
3. 返回值
十 PHP文件管理
1. 打开文件
2. 写入文件
3. 读取文件
十一 PHP操作mysql数据库
1. 新增数据
2. 修改数据
3. 删除数据
4. 查询数据
4.1 查询是否成功
4.2 查询所有数据
4.3 登录案例

内容

一 概述

PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,尤其适用于Web开发。

PHP可以嵌入到HTML中,并与多种数据库集成,最常用的是MySQL

其灵活性、易学性和强大的社区支持使得PHP成为开发动态网页Web应用程序的首选语言之一。

PHP代码在服务器上执行,生成的HTML发送到客户端,从而实现网页的动态交互。
学习PHP需要先掌握HTML与CSS基础知识 ,没有基础的同学可以先学习《前端基础系列》:https://blog.csdn.net/weixin/_55584739/category/_12842027.html

二 环境搭建

1. 开发环境

开始学习之前还需要搭建PHP所需环境:PHP环境,Apache服务器。
对于初学者而言,建议使用集成工具,集成工具中包含了 PHP、Apache服务器、Mysql数据库等服务,免去了繁琐的配置环境过程。
常见的集成工具有很多: WampServer、XAMPP、PHPStudy等,这里推荐使用PHPStudy,下载地址:小皮面板(phpstudy) - 让天下没有难配的服务器环境!
下载安装步骤简单,根据提示安装即可:
图片

2. 运行PHP程序

2.1 启动Apache服务器
2.2 打开根目录
图片
2.3 创建php文件
图片
2.4  打开浏览器,访问php程序即可
访问地址:域名+php程序名
图片

3. 开发工具

选择一款顺手的开发工具,可以使我们的开发效率大大提升。
常见的PHP开发工具:Eclipse for PHP、PhpStorm、VSCode,建议初学者使用VSCode,轻量化,简单易上手,下载地址:vscode中文网 下载 Visual Studio Code
图片

三 语法

完成以上准备工作,我们就开始正式学习PHP入门知识:基本语法。

1. 创建php文件

PHP 文件的默认文件扩展名是 .php。
PHP 文件可以包含 HTML 标签和一些 PHP 脚本代码。
图片

2. 格式

PHP 脚本可以放在文件中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束:

<?php
    // PHP 代码
?>
3. 注释
<?php
    // 这是 PHP 单行注释
    /*
        这是
        PHP 多行
        注释
    */
?>
4. HelloWord
<?php
    echo "Hello World!";
?>

四 变量

变量是用于程序存储数据的"容器",所有编程语言中都有变量的概念。
语法: 变量名 = 变量值 ; 由于 P H P 属于弱类型语言,所以声明变量时不需要设置数据类型,变量的类型取决于值的类型。注意规范:        命名需要有一定寓意,例如存储姓名: 变量名 = 变量值; 由于PHP属于弱类型语言,所以声明变量时不需要设置数据类型,变量的类型取决于值的类型。 注意规范:         命名需要有一定寓意,例如存储姓名: 变量名=变量值;由于PHP属于弱类型语言,所以声明变量时不需要设置数据类型,变量的类型取决于值的类型。注意规范:        命名需要有一定寓意,例如存储姓名:name
        遵守驼峰命名法,例如存储姓名:$myName

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

五 数据类型

程序中的数据种类繁多,可以根据类型不同,分为几大类:

String(字符串)

Integer(整型)

Float(浮点型)

Boolean(布尔型)

Array(数组)

Object(对象)

NULL(空值)

Resour

1. 字符串

一个字符串是一串字符的序列,就像 “Hello world!”。
可以将任何文本放在单引号和双引号中:

<?php 
    $x = "Hello world!";
    echo $x;
    echo "<br>"; 
    $x = 'Hello world!';
    echo $x;
?>
2. 整数

整数是一个没有小数的数字。

<?php 
    $x = 1359;
    $x = -345; // 负数 
    $x = 0x8C; // 十六进制数
    $x = 047; // 八进制数
?>
3. 小数(浮点数)

浮点数是带小数部分的数字,或是指数形式。
 var/_dump() 函数返回变量的数据类型和值。

<?php 
    $x = 10.365;
    var_dump($x);
    echo "<br>"; 
    $x = 2.4e3;
    var_dump($x);
?>
4. 布尔

布尔型可以是 TRUE 或 FALSE,TRUE标识真,FALSE标识假。

<?php
    $x=true;
    $y=false;
?>
5. PHP 对象 (Object)

对象类型可以用于存储数据,使用class关键字声明类对象,类包含属性和方法。

<?php
    //类名
    class Car{
      //属性
      var $color;
      //方法
      function fun1() {
        echo "方法1";
      }
    }
?>
6. null值

NULL 值表示变量没有值,NULL 是数据类型为 NULL 的值。

<?php
    $x="Hello world!";
    $x=null;
    var_dump($x);
?>

六 运算符

PHP中的运算符与Java运算符基本相同,这里只描述特殊情况,其他相同的运算符可以参考《Java基础系列》中的《Java基础系列-第二章 变量,运算符与数据类型》

1. 算数运算符

+    -    /*    /   %

2. 赋值运算符

=    +=    -=    /*=    /=    %=    .=
.= 连接两个字符串

<?php
    $a = "Hello";
    $b = $a . " world!";
    echo $b; // 输出Hello world![图片](?)>
3. 递增递减运算符

++x预递增      --x预递减     x++递增     x–递减

4. 比较运算符

大于   >=大于等于   <小于    <=小于等于   ==相等    ===完全相等     !=非等    === 完全相等

<?php
    $x=100; 
    $y="100";
    //=== 判断两边数据的值和类型是否相同
    var_dump($x === $y);
?>
5. 逻辑运算符

&&与   ||或   !非

七 流程控制语句

流程控制语句用来控制程序的执行流程,分为三种流程结构:

  1. 顺序结构
  2. 选择结构
  3. 循环结构
    与Java中的语法相同,参考《Java基础系列》中的《Java基础系列-第三章 流程控制语句》

八 数组

数组指数据的组合,能够在单个变量中存储多个值。
可以将数组看作一个存储数据的盒子,盒子中有很多个格子,每个格子中都可存储一个数据。
数组名:盒子名
元素:格子中的数据
索引:格子的位置
长度:格子的数量

1. 创建数组并读取数据

通过索引读取数组中的元素 :$数组名[索引];
索引从0开始。即数组中的第一个元素索引为0,以此类推。

<?php
    $cars=array("Volvo","BMW","Toyota");
    //通过索引 读取数组中的所有元素  $数组名[索引];
    echo "$cars[0].$cars[1].$cars[2]";
?>
2. 获取数组长度

count() 函数用于返回数组的长度。

<?php
    $cars=array("Volvo","BMW","Toyota");
    echo count($cars);
?>
3. 遍历数组

遍历指的是读取数组中的所有数据,使用 for 循环:

<?php
    $cars=array("Volvo","BMW","Toyota");
    $arrlength=count($cars);
 
    for($x=0;$x<$arrlength;$x++){
        echo $cars[$x];
        echo "<br>";
    }
?>

九 函数

函数又称方法,可以将功能代码进行封装,重复使用。
函数语法:function 函数名(参数){  功能代码;  返回值; }
函数中的代码需要经过调用才会执行,不经调用函数无法执行。

1. 函数名

函数的名称

2. 参数

函数中可以使用的变量,调用者在调用时可以向参数中赋值,这个过程叫做参数传递(传参)。

3. 返回值

函数执行后返回给调用者的数据叫做返回值,可以用来传递数据。

<?php
// 没有参数,没有返回值的方法
function fun1(){
    echo "没有参数,没有参会值的方法";
}
// 有参数,没有返回值的方法
function fun2($name){
    echo "有参数,没有返回值的方法,参数是:$name";
}
// 有参数,有返回值的方法
function fun3($name){
    $re = "返回值x";
    return "有参数,有返回值的方法,返回值是:$re";
}
// 调用函数
fun1();
fun2("张三");
$x = fun3("admin");
echo $x;
/* 
   课堂练习:编写一个计算器方法,调用者传递两个整数,
   计算器方法计算两个整数的积,并将结果返回给调用者
   调用者接收数据,并输出到浏览器
*/
?>

十 PHP文件管理

使用php程序操作本地文件:php提供了一些函数,可以打开本地指定文件,给其添加数据、修改数据、删除数据、读取文件中的数据。

1. 打开文件

fopen(“文件地址”,“打开方式”);函数用于打开文件
打开方式有多种,分别为:
图片

<?php
   // 同级目录下创建test.txt文件
   // 以只读模式打开文件
   $fp = fopen('test.txt', "r");
   //var_dump()操作一下$fp看看效果,查看输出结果,提示resource
   var_dump($fp);
?>
2. 写入文件

fwrite($文件对像,“写入的数据”);函数用于写入数据

<?php
   $filename = 'test.txt';
   // 打开文件 以写入的形式打开文件
   $fp= fopen($filename, "w");
   // 写入文件 
   $len = fwrite($fp, '模拟数据');
   // 关闭文件对象
   fclose($fp);
   // 打印输出结果
   print $len .'字节被写入了/n';
?>
3. 读取文件

3.1 fread() 返回所读取的字符串,如果出错返回 FALSE。

<?php
    $filename = "test.txt";
    $handle = fopen($filename, "r");//读取二进制文件时,需要将第二个参数设置成'rb'
    // fread(文件对象,文件长度); 读取文件中的所有数据
    // 通过filesize(文件对象); 函数获得文件大小,将整个文件一下子读到一个字符串中
    $contents = fread($handle, filesize ($filename));
    fclose($handle);
?>

如果读取的文件不是本地普通文件,而是远程文件或者流文件,就不能用以上方法。
因为filesize()函数不能获得这些文件的大小。
所以,需要通过feof()或者fread()的返回值判断是否已经读取到了文件的末尾。
feof()案例:

<?php
    $handle = fopen('http://www.baidu.com', 'r');
    $content = '';
    while(!feof($handle)){
        $content .= fread($handle, 8080);
    }
    echo $content;
    fclose($handle);
?>

或者:

<?php
    $handle = fopen('http://www.baidu.com', 'r');
    $content = '';
    while(false != ($a = fread($handle, 8080))){//返回false表示已经读取到文件末尾
        $content .= $a;
    }
    echo $content;
    fclose($handle);
?>

3.2 file读取数据到数组中
array file ( string $filename [, int $use/_include/_path [, resource $context ]] );
将文件内容读入一个数组中,数组的每一项对应文件中的一行,包括换行符在内。

<?php
    $a = file('test.txt');
    foreach($a as $line => $content){
        echo 'line '.($line + 1).':'.$content;
    }
?>

十一 PHP操作mysql数据库

php操作mysql数据库需要使用mysqli库

1. 新增数据
<?php
// 连接数据库,添加数据
// 步骤:1.创建连接 $db = new mysqli($数据库地址,$数据库账号,$数据库密码,$数据库名称);
//      2.编写sql语句 $sql = "insert into demo values($id,'$name',$age)";
//      3.执行sql语句 $rs = mysqli_query($db,$sql);
//      4.处理结果  if($rs){ echo "添加成功!";}
//      5.关闭连接对象  mysqli_close($db);
    $dbservice = "localhost"; //ip地址
    $dbusername = "root";   //账号
    $dbpassword = "root";   //密码
    $dbname = "school";     //数据库名称
    // 1.创建数据库连接
    $db = new mysqli($dbservice,$dbusername,$dbpassword,$dbname);
    //模拟用户数据
    $id = 1;
    $name = "tom";
    $age = 18;
    // 2.编写sql语句
    $sql = "insert into demo values($id,'$name',$age)";
    // 3.执行sql语句  使用mysqli_query(数据库连接对象,sql语句)函数执行sql语句,获得执行结果
    $rs = mysqli_query($db,$sql);
    // 4.处理执行结果  判断是否执行成功
    if($rs){
         echo "添加成功!";
    }else{
        echo "添加失败!";
    }
    // 5.关闭连接对象
     mysqli_close($db);;
?>
2. 修改数据
<?php
    // 修改数据
    // 创建连接
    $conn = new mysqli("localhost","root","root","school");
    // 编写sql语句
    $sql = "update demo set id=2,name='jar',age=18 where id=1;";
    // 执行sql语句
    $rs = mysqli_query($conn,$sql);
    if($rs){
        echo "修改成功";
    }else{
        echo "修改失败";
    }
    // 关闭连接
    mysqli_close($conn);
?>
3. 删除数据
<?php
    // 删除数据
    // 创建连接
    $conn = new mysqli("localhost","root","root","school");
    // 编写sql语句
    $sql = "delete from demo where id=1";
    // 执行sql语句  得到执行结果
    $rs = mysqli_query($conn,$sql);
    // 处理执行结果
    if($rs){
        echo "成功";
    }else{
        echo "失败";
    }
    // 关闭连接
    mysqli_close($conn);
?>
4. 查询数据
4.1 查询是否成功
<?php
    // 查询数据
    $conn = new mysqli("localhost","root","root","school");
    $sql = "select * from demo";
    $rs = mysqli_query($conn,$sql);
    if($rs){
        echo "查询成功";
    }else{
        echo "查询失败";
    }
?>
4.2 查询所有数据
<?php
    // 查询数据,展示到网页
    $conn = new mysqli("localhost","root","root","school");
    $sql = "select * from demo";
    // 执行sql语句,获得结果集
    $rs = mysqli_query($conn,$sql);
    // mysqli_fetch_array(结果集) 用于读取结果集,返回值为数组
    // 遍历结果集
    while($row = mysqli_fetch_array($rs)){
        echo $row['id']. " " .$row['name']. " " .$row['age'];
        echo "<br>";
    }
?>
4.3 登录案例
<?php
    // 管理员登录,跳转首页
    // 获取请求表单中的用户数据
    $username = $_POST["username"];
    $password = $_POST["password"];
    // 创建数据库连接
    $con = new mysqli("localhost","root","root","crm");
    // 编写sql
    $sql = "select * from user where username='$username' and password='$password'";
    // 执行sql
    $rs = mysqli_query($con,$sql);
    // 根据执行结果,跳转页面
    if($rs){
        // 登录成功,创建sessio,跳转首页
        // 开启session
        session_start();
        // 将用户数据存入session会话对象
        $_SESSION["username"] = $username;
        $_SESSION["password"] = $password;
        // 跳转
        echo "<script language='javascript'>alert('登陆成功!');
            location='welcome.php'</script>";
    }else{
        // 登陆失败,跳转登陆页面
        echo "<script language='javascript'>alert('登陆失败!账号或密码错误,请重新输入。');
            location='index.html'</script>";
    }
?>

十二 小结

本文主要学习PHP入门知识、基础语法、操作文件、操作mysql数据库等知识点。
后续持续更新。

《网络安全从零到精通全套学习大礼包》

96节从入门到精通的全套视频教程免费领取

如果你也想通过学网络安全技术去帮助就业和转行,我可以把我自己亲自录制的96节 从零基础到精通的视频教程以及配套学习资料无偿分享给你。

请添加图片描述

网络安全学习路线图

想要学习 网络安全,作为新手一定要先按照路线图学习方向不对,努力白费。对于从来没有接触过网络安全的同学,我帮大家准备了从零基础到精通学习成长路线图以及学习规划。可以说是最科学最系统的学习路线,大家跟着这个路线图学习准没错。

请添加图片描述

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

在这里插入图片描述

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

在这里插入图片描述

面试真题/经验

请添加图片描述

以上资料如何领取?

img

g.cn/direct/6d41d41d77204bfc9459b7a3d079371f.png)

配套实战项目/源码

所有视频教程所涉及的实战项目和项目源码

在这里插入图片描述

学习电子书籍

学习网络安全必看的书籍和文章的PDF,市面上网络安全书籍确实太多了,这些是我精选出来的

在这里插入图片描述

面试真题/经验

请添加图片描述

以上资料如何领取?

img

文章来自网上,侵权请联系博主

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐