likes
comments
collection
share

PHP入门这篇文章主要从零开始学习PHP,首先了解了什么是PHP以及用PHP实现最基本的Hello World。后续学习

作者站长头像
站长
· 阅读数 61

1.1 初识PHP

什么是PHP

  • 是一种编程语言,也是一个安装程序 (运行环境)
  • 用于服务器端动态Web编程
  • 用于服务器后台API接口开发
  • 是一种解释型脚本编程语言

PHP能做什么

  • 服务端脚本
  • 命令行脚本
  • 编写桌面应用程序 (用得不多)

优势

  • 简单易学
  • 实用性强
  • 跨平台
  • 函数库(类库) 丰富

1.2 PHP代码的两种运行方式 Hello,PHP World!

PHP运行环境

  1. 电脑,操作系统 (Windows,MacOS,Linux)
  2. PHP程序
  3. 数据库 (MySQL,PostgreSQL)
  4. Web容器 (Nginx,Apache)

新手去一个一个安装和配置的话会比较麻烦,php有集成化的运行环境

集成化的运行环境

WAMP(Windows中的集成环境) AppServ

MAMP(Mac中的集成环境) phpStudy

LAMP(Linux中的集成环境) phpnow ... ...

PHP编程

 //php代码的开始标记
 <?php
    //中间写真正的php程序在中间
 //php代码的结束标记
 ?>

用php写第一个Hello World代码,创建一个文件名为:hello.php

 <?php
     //输出字符 并且在最后加上换行符
     echo "Hello,PHP World!" . PHP_EOL;
 ?>

解释: 在上方代码中的 “ . ” 表示 连接符,PHP中有许多的预定义常量,像这里的PHP_EOL代表的是 兼容各个平台的换行符,因为每个操作系统的换行符不同,这样写让代码有更好的兼容性。

第一种方式运行php代码

在命令行中运行:

 php 路径/hello.php

第二种方式运行php代码

在Web容器中运行,这边只能打个比方,如果是在Windows环境中,可以在WAMP集成环境中,将我们写的.php代码放入Web服务器的根目录中,在Web服务器运行后,在配置的路径后加上.php代码的名字就可以查看页面,例:

127.0.0.1:8888/hello.php

同样可以使用HTML标记语法来写php文件:

 //标识这是一个html文档
 <!DOCTYPE html>
 <html>
     <head>
         <title>第一行PHP代码</title>
     </head>
     <body>
         <?php echo "Hello,PHP World!;" ?>
     </body>
 </html>

1.3 PHP动态Web开发

基本流程

  1. 浏览器或postman等向Web容器发送请求 (HTTP GET/POST)
  2. Web容器向php程序求助
  3. php脚本解释执行:连接数据库,操作数据库,断开连接(释放资源)
  4. 处理完数据后返回给Web容器
  5. Web容器收到数据后返回HTML文档

PHP操作MySQL常见的两种方法

1. MySQLi 扩展

MySQL增强版扩展,专用于与MySQL数据库的操作。

2.PDO (PHP Data Object) 兼容性更好

PHP数据对象,用在与十多种不同的主流数据库的操作。

MySQLi 代码演示

下面是一个用MySQLi操作数据库的例子:

 <?php
     echo "Mysqli操作数据库演示 <br/>" 
     
     //【连接数据库基本信息】
     $db_host = "127.0.0.1"; //数据库服务器的ip地址
     $db_user = "root";      //数据库的用户名
     $db_password = "root";  //数据库的密码
     $db_name = "php_mysql"; //数据库的名字
     $db_port = 8889;        //数据库的端口
 ​
     //【mysqli连接数据库】
     $mysqli = new mysqli($db_host,$db_user,$db_password,$db_name,$db_port);
         
     //如果连接不成功的代码处理
     if($mysqli->connect_error) {
         echo "数据库连接失败";
         echo "<br/>";
         echo "错误编号: ".$mysqli->connect_errno;
         echo "<br/>";
         echo "错误描述: ".$mysqli->connect_error;
         exit(); //退出脚本
     }
 ​
     //数据库连接成功
     echo "数据库连接成功<br/>";
         
     //【操作数据库】
     //假设:查询php_mysql数据库中的数据表tb_data
     //使用prepared statement预编译方式查询,虽然复杂但是安全
     $query = "SELECT * FROM tb_data ORDER BY id ASC";
     $stmt = $mysqli->prepare($query);
     $stmt->execute();
     $result = $stmt->get_result();
     $query_rows = $result->fetch_all(MYSQLI_ASSOC);
 ​
     //断开数据库连接
     $mysqli->close();
 ?>

这样就可以拿到数据了,拿到的数据我们同样可以用HTML标记语法来展示:

 <?php
     //...此处省略与上面一样的代码
 ?>
     
 <!DOCTYPE html>
 <html>
     <head>
         <title>遍历展示我的数据</title>
     </head>
     <body>
         <h1>Mysqli操作数据库演示</h1>
         <h2>共查询出<?php echo $result->num_rows;?>条数据</h2>
             
         <table>
             <thead>
                 <tr>
                     <th>ID</th>
                      <th>Name</th>
                      <th>url</th>
                 </tr>
             </thead>
             <tbody>
                 <?php foreach($query_rows as $row):?>
                     <tr>
                         <td><?php echo $row['id'] ?></td>
                         <td><?php echo $row['name'] ?></td>
                         <td>
                             <a href = "<?php echo $row['content'] ?>" target="_black" />
                         </td>
                     </tr>
                 <?php endforeach;?>
             </tbody>
         </table>
     </body>
 </html>

PDO 代码演示

下面是一个用PDO操作数据库的例子:

 <?php
     echo "PDO操作数据库演示 <br/>" 
     
     //【连接数据库基本信息】
     $db_host = "127.0.0.1"; //数据库服务器的ip地址
     $db_user = "root";      //数据库的用户名
     $db_password = "root";  //数据库的密码
     $db_name = "php_mysql"; //数据库的名字
     $db_port = 8889;        //数据库的端口
     $charset = "utf8";
 ​
     try{
         //DSN => Data Source Name 数据源名称
         //例:$dsn = 'mysql:host=127.0.0.1;dbname=mysql;port=8889;charset=utf8';
         $dsn = 'mysql:host='.$db_host.';dbname='.$db_name.';port='.$db_port.';charset='.$charset;
         $options = [
             PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
             PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC,
             PDO::ATTR_EMULATE_PREPARES => false
         ];
         $pdo = new PDO($dsn,$db_user,$db_password,$options);
         echo "数据库连接成功<br/>";
     }
     catch(PDOException $e){
         echo '数据库连接失败<br/>';
         echo $e->getMessage();
         //断开连接
         $pdo = null;
         exit();
     }
 ​
     //【操作数据库】 与mysqli会有略微不同
     //假设:查询php_mysql数据库中的数据表tb_data
     //使用prepared statement预编译方式查询,虽然复杂但是安全
     $query = 'SELECT * FROM tb_data ORDER BY id ASC';
     $stm = $pdo->prepare($query);
     $stm->execute();
     $query_rows = $stm->fetchAll();
 ​
     //断开数据库连接
     $pdo = null;
 ?>

PHP服务器端API接口开发

核心

服务器端通过 将内存变量(对象、数组)进行序列化为JSON字符串,将其发送给客户端。

客户端将JSON字符串发送给服务器端,服务器端接收到后会进行反序列化的操作,将JSON字符串变回内存变量(对象、数组)。

接下来是模拟API接口返回数据到前端的展示:

 <?php
     //模拟获取到了数据
     $data = [
         'id' => 1,
         'name' => '名字',
         'author' => '作者'
     ];
 ​
     $result = [
         'success' => true,
         'msg' => '获取数据成功',
         'data' => $data
     ];
 ​
     http_response_code(200);
     header("Content-type:application/json;charset=UTF-8");
     //json_encode序列化 echo返回给客户端
     echo json_encode($result);
 ?>

1.4 列举 一些预定义常量

  1. PHP_VERSION:表示当前PHP的版本号。
  2. PHP_OS:表示当前PHP运行的操作系统。
  3. PHP_INT_MAX:表示整型的最大值。这个常量在进行大数运算或者进行整型转换时非常有用。
  4. _LINE_:表示当前代码所在的行数。这个常量在调试代码时非常有用,可以方便定位出错的位置。
  5. _FILE_:表示当前代码所在的文件名。这个常量常用于获取当前文件的绝对路径
  6. _DIR_:表示当前文件所在的目录。这个常量常用于包含其他文件时,指定相对路径
  7. _FUNCTION_:表示当前函数的名称。这个常量用于输出函数名
  8. _CLASS_:表示当前类的名称。这个常量通常用于输出类名
  9. _METHOD_:表示当前方法的名称。这个常量常用于输出方法名
  10. PHP_EOL:表示换行符。这个常量在不同的操作系统上有不同的值,可以方便地进行换行操作。
  11. PHP_BINDIR:表示PHP的安装路径
  12. PHP_SELF:表示当前执行脚本的文件名。这个常量通常用于生成URL链接方便在同一个脚本中进行页面跳转
  13. PHP_SAPI:表示当前PHP运行的API类型,这个常量可以用于判断当前PHP是运行在命令行模式还是Web服务器模式
  14. PHP_EXTENSION_DIR:表示PHP扩展的安装路径
  15. PHP_SHLIB_SUFFIX:表示PHP扩展的文件后缀
  16. PHP_WINDOWS_VERSION_MAJOR:表示Windows操作系统的主版本号。这个常量可以用于判断当前运行的操作系统是哪个版本
  17. PHP_WINDOWS_VERSION_MINOR:表示Windows操作系统的次版本号
转载自:https://juejin.cn/post/7390620343013163060
评论
请登录