当前位置: 首页 > news >正文

深入浅出:php-学习入门全攻略

文章目录

    • 1. 为什么选择 PHP?
    • 2. 安装 PHP 环境
      • 2.1 Windows 系统安装
        • 步骤 1:下载 PHP
        • 步骤 2:解压并配置
        • 步骤 3:配置环境变量
        • 步骤 4:验证安装
      • 2.2 Mac 系统安装
        • 步骤 1:使用 Homebrew 安装
        • 步骤 2:验证安装
      • 2.3 Linux 系统安装
        • 步骤 1:使用包管理器安装
        • 步骤 2:验证安装
    • 3. 配置开发环境
      • 3.1 使用 XAMPP
        • 步骤 1:下载 XAMPP
        • 步骤 2:安装 XAMPP
        • 步骤 3:启动 XAMPP
      • 3.2 使用 Docker
        • 步骤 1:安装 Docker
        • 步骤 2:创建 Dockerfile
        • 步骤 3:构建并运行容器
    • 4. PHP 基础语法
      • 4.1 变量与数据类型
        • 示例代码:定义变量
      • 4.2 控制结构
        • 示例代码:条件语句
        • 示例代码:循环语句
      • 4.3 函数与方法
        • 示例代码:定义函数
        • 示例代码:定义方法
    • 5. 文件操作与表单处理
      • 5.1 文件读写
        • 示例代码:文件读写
      • 5.2 表单处理
        • 示例代码:表单处理
    • 6. 数据库操作
      • 6.1 连接 MySQL 数据库
        • 示例代码:连接 MySQL 数据库
      • 6.2 查询与插入数据
        • 示例代码:查询数据
        • 示例代码:插入数据
    • 7. 使用框架进行开发
      • 7.1 Laravel 框架
        • 安装 Laravel
      • 7.2 Symfony 框架
        • 安装 Symfony
    • 8. 实际应用案例
      • 案例一:博客系统
        • 功能需求
        • 技术栈
      • 案例二:在线商城
        • 功能需求
        • 技术栈
    • 9. 学习资源与进阶指南
      • 9.1 在线课程
      • 9.2 书籍
      • 9.3 社区与论坛
    • 参考资料

1. 为什么选择 PHP?

PHP(Hypertext Preprocessor)是一种广泛使用的开源服务器端脚本语言,特别适合 Web 开发。它简单易学、功能强大,并且拥有庞大的社区支持。PHP 的优势包括:

  • 易于上手:PHP 语法简洁明了,适合初学者快速掌握。
  • 跨平台:PHP 可以在 Windows、Mac 和 Linux 等多个操作系统上运行。
  • 丰富的库和框架:PHP 拥有大量成熟的库和框架,如 Laravel、Symfony 等,帮助开发者快速构建复杂的应用。
  • 强大的社区支持:PHP 拥有一个活跃的开发者社区,遇到问题时可以轻松找到解决方案。

2. 安装 PHP 环境

2.1 Windows 系统安装

步骤 1:下载 PHP

访问 PHP 官方网站 下载适合 Windows 的 PHP 版本。建议选择带有线程安全(TS)的版本。

步骤 2:解压并配置

将下载的压缩包解压到一个目录(例如 C:\php),然后将 php.ini-development 复制为 php.ini,并根据需要进行配置。

步骤 3:配置环境变量

打开“系统属性”中的“环境变量”,将 C:\php 添加到 PATH 中。这样可以在命令行中直接使用 php 命令。

步骤 4:验证安装

打开命令提示符,输入以下命令验证 PHP 是否安装成功:

php -v

如果输出类似 PHP 8.1.12 (cli) (built: Oct 26 2022 10:38:21) 的信息,说明安装成功。

2.2 Mac 系统安装

步骤 1:使用 Homebrew 安装

Homebrew 是 Mac 上非常流行的包管理工具。你可以通过以下命令安装 PHP:

brew install php
步骤 2:验证安装

安装完成后,打开终端,输入以下命令验证 PHP 是否安装成功:

php -v

如果输出类似 PHP 8.1.12 (cli) (built: Oct 26 2022 10:38:21) 的信息,说明安装成功。

2.3 Linux 系统安装

步骤 1:使用包管理器安装

对于 Ubuntu 系统,你可以使用以下命令安装 PHP:

sudo apt update
sudo apt install php

对于 CentOS 系统,你可以使用以下命令安装 PHP:

sudo yum install epel-release
sudo yum install php
步骤 2:验证安装

安装完成后,打开终端,输入以下命令验证 PHP 是否安装成功:

php -v

如果输出类似 PHP 8.1.12 (cli) (built: Oct 26 2022 10:38:21) 的信息,说明安装成功。

3. 配置开发环境

3.1 使用 XAMPP

XAMPP 是一个集成的开发环境,包含了 Apache、MySQL、PHP 和 Perl。它可以让你快速搭建一个本地开发环境。

步骤 1:下载 XAMPP

访问 XAMPP 官方网站,下载适合你操作系统的版本。

步骤 2:安装 XAMPP

双击下载的安装包,按照提示完成安装。安装过程中可以选择安装的组件,默认安装即可。

步骤 3:启动 XAMPP

安装完成后,打开 XAMPP 控制面板,启动 Apache 和 MySQL 服务。你可以在浏览器中访问 http://localhost 来测试是否成功。

3.2 使用 Docker

Docker 是一种容器化技术,可以帮助你在不同环境中保持一致的开发环境。你可以使用 Docker 来快速搭建 PHP 开发环境。

步骤 1:安装 Docker

访问 Docker 官方网站,下载并安装适合你操作系统的 Docker 版本。

步骤 2:创建 Dockerfile

在项目根目录下创建一个 Dockerfile,内容如下:

FROM php:8.1-apache# 安装常用扩展
RUN docker-php-ext-install mysqli pdo pdo_mysql# 将项目文件复制到容器中
COPY . /var/www/html
步骤 3:构建并运行容器

在项目根目录下打开终端,执行以下命令构建并运行容器:

docker build -t my-php-app .
docker run -d -p 8080:80 my-php-app

你可以在浏览器中访问 http://localhost:8080 来测试是否成功。

4. PHP 基础语法

4.1 变量与数据类型

PHP 支持多种数据类型,包括整数、浮点数、字符串、布尔值等。变量名以 $ 符号开头。

示例代码:定义变量
<?php
$age = 25;
$height = 1.75;
$name = "Alice";
$isStudent = true;echo "Name: $name, Age: $age, Height: $height, Is Student: $isStudent";
?>

4.2 控制结构

PHP 提供了多种控制结构,用于控制程序的执行流程。常见的控制结构包括条件语句和循环语句。

示例代码:条件语句
<?php
$age = 18;if ($age >= 18) {echo "You are an adult.";
} else {echo "You are a minor.";
}
?>
示例代码:循环语句
<?php
// for 循环
for ($i = 0; $i < 5; $i++) {echo $i . "\n";
}// while 循环
$count = 0;
while ($count < 5) {echo $count . "\n";$count++;
}
?>

4.3 函数与方法

函数是组织代码的基本单元,可以将一段代码封装起来,便于重复使用。PHP 还支持为类定义方法,类似于面向对象编程中的类方法。

示例代码:定义函数
<?php
function greet($name) {return "Hello, $name!";
}echo greet("Alice");
?>
示例代码:定义方法
<?php
class Person {public $name;public $age;public function __construct($name, $age) {$this->name = $name;$this->age = $age;}public function greet() {return "Hello, my name is $this->name and I am $this->age years old.";}
}$person = new Person("Alice", 25);
echo $person->greet();
?>

5. 文件操作与表单处理

5.1 文件读写

PHP 提供了简单的文件操作功能,可以轻松地读取和写入文件。常用的文件操作模式包括读取 (fopen)、写入 (fwrite) 和追加 (fopen + a 模式)。

示例代码:文件读写
<?php
// 写入文件
$file = fopen("example.txt", "w");
fwrite($file, "Hello, World!");
fclose($file);// 读取文件
$file = fopen("example.txt", "r");
$content = fread($file, filesize("example.txt"));
fclose($file);echo $content;
?>

5.2 表单处理

表单是 Web 应用中最常见的用户输入方式。PHP 可以轻松处理表单提交的数据,并将其存储到数据库或进行其他处理。

示例代码:表单处理
<!DOCTYPE html>
<html>
<head><title>Form Example</title>
</head>
<body><form method="POST" action=""><label for="name">Name:</label><input type="text" name="name" id="name"><br><label for="email">Email:</label><input type="email" name="email" id="email"><br><input type="submit" value="Submit"></form><?phpif ($_SERVER["REQUEST_METHOD"] == "POST") {$name = $_POST["name"];$email = $_POST["email"];echo "Name: $name<br>";echo "Email: $email<br>";}?>
</body>
</html>

6. 数据库操作

6.1 连接 MySQL 数据库

PHP 提供了多种方式连接 MySQL 数据库,最常用的是使用 mysqliPDO 扩展。这里我们以 mysqli 为例。

示例代码:连接 MySQL 数据库
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);
}
echo "Connected successfully";
?>

6.2 查询与插入数据

连接数据库后,你可以使用 SQL 语句查询和插入数据。PHP 提供了多种方式执行 SQL 语句,最常用的是 query 方法。

示例代码:查询数据
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);
}// 查询数据
$sql = "SELECT id, name, email FROM users";
$result = $conn->query($sql);if ($result->num_rows > 0) {// 输出数据while($row = $result->fetch_assoc()) {echo "id: " . $row["id"]. " - Name: " . $row["name"]. " - Email: " . $row["email"]. "<br>";}
} else {echo "0 results";
}$conn->close();
?>
示例代码:插入数据
<?php
$servername = "localhost";
$username = "root";
$password = "";
$dbname = "test";// 创建连接
$conn = new mysqli($servername, $username, $password, $dbname);// 检查连接
if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);
}// 插入数据
$sql = "INSERT INTO users (name, email) VALUES ('Alice', 'alice@example.com')";if ($conn->query($sql) === TRUE) {echo "New record created successfully";
} else {echo "Error: " . $sql . "<br>" . $conn->error;
}$conn->close();
?>

7. 使用框架进行开发

7.1 Laravel 框架

Laravel 是目前最受欢迎的 PHP 框架之一,提供了丰富的功能和优雅的语法,帮助开发者快速构建现代化的 Web 应用。

安装 Laravel

你可以使用 Composer 来安装 Laravel。首先确保你已经安装了 Composer,然后执行以下命令:

composer create-project --prefer-dist laravel/laravel my-project

进入项目目录并启动开发服务器:

cd my-project
php artisan serve

你可以在浏览器中访问 http://localhost:8000 来查看 Laravel 的欢迎页面。

7.2 Symfony 框架

Symfony 是另一个非常流行的 PHP 框架,特别适合构建大型企业级应用。Symfony 提供了模块化的架构和丰富的组件库,帮助开发者灵活地构建复杂的应用。

安装 Symfony

你可以使用 Symfony CLI 来安装 Symfony。首先安装 Symfony CLI:

curl -sS https://get.symfony.com/cli/installer | bash

然后创建一个新的 Symfony 项目:

symfony new my-project

进入项目目录并启动开发服务器:

cd my-project
symfony server:start

你可以在浏览器中访问 http://127.0.0.1:8000 来查看 Symfony 的欢迎页面。

8. 实际应用案例

案例一:博客系统

博客系统是一个常见的 Web 应用,包含文章发布、评论、分类等功能。你可以使用 Laravel 或 Symfony 框架来快速搭建一个功能完善的博客系统。

功能需求
  • 用户注册和登录
  • 文章发布和编辑
  • 评论和回复
  • 分类和标签
  • 搜索功能
技术栈
  • 前端:HTML、CSS、JavaScript
  • 后端:PHP(Laravel 或 Symfony)
  • 数据库:MySQL
  • 版本控制:Git

案例二:在线商城

在线商城是一个复杂的电子商务应用,包含商品管理、订单处理、支付集成等功能。你可以使用 Laravel 或 Symfony 框架来构建一个高性能的在线商城。

功能需求
  • 商品浏览和搜索
  • 购物车管理
  • 订单处理
  • 支付集成(如 PayPal、Stripe)
  • 用户管理
技术栈
  • 前端:HTML、CSS、JavaScript(React 或 Vue.js)
  • 后端:PHP(Laravel 或 Symfony)
  • 数据库:MySQL 或 PostgreSQL
  • 支付网关:PayPal、Stripe
  • 版本控制:Git

9. 学习资源与进阶指南

9.1 在线课程

  • Coursera - PHP for Beginners
  • Udemy - The Complete PHP Developer Course
  • Codecademy - Learn PHP

9.2 书籍

  • 《PHP 和 MySQL Web 开发》 - Luke Welling, Laura Thomson
  • 《PHP 编程实战》 - Robin Nixon
  • 《PHP 7 精要》 - Josh Lockhart, Charles Max Wood

9.3 社区与论坛

  • Stack Overflow
  • Reddit - r/PHP
  • PHP 官方论坛

参考资料

  • PHP 官方网站
  • PHP 文档
  • Laravel 官方文档
  • Symfony 官方文档
  • Composer 官方网站
  • Docker 官方网站

欢迎在评论区互动,彼此交流相互学习! 😊

相关文章:

深入浅出:php-学习入门全攻略

文章目录 1. 为什么选择 PHP&#xff1f;2. 安装 PHP 环境2.1 Windows 系统安装步骤 1&#xff1a;下载 PHP步骤 2&#xff1a;解压并配置步骤 3&#xff1a;配置环境变量步骤 4&#xff1a;验证安装 2.2 Mac 系统安装步骤 1&#xff1a;使用 Homebrew 安装步骤 2&#xff1a;验…...

Qml之基本控件

一.Qml常用控件 1.Text(显示普通文本和富文本) 1.1显示普通文本&#xff1a; Window { visible: true width: 320 height: 240 title: qsTr("Hello World") Text { text: "Hello World!" font.family: "Helvetica" font.pointSize: 24 color:…...

redis机制详解

RDB 快照机制 在默认情况下&#xff0c;Redis 会将内存数据库的快照存储在名为 “dump.rdb” 的二进制文件中。同时&#xff0c;你可以通过相关设置&#xff0c;让 Redis 在满足特定条件时自动保存数据集。例如&#xff0c;设定 “save 60 1000”&#xff0c;意味着当在 60 秒内…...

【知识科普】Linux系统下用户权限体系

文章目录 概述一、用户类型二、用户权限的组成三、权限的表示方法四、权限的修改方法五、特殊权限六、权限掩码&#xff08;umask&#xff09; 密码相关一、修改用户密码二、删除用户密码三、设置用户密码有效期四、查询用户密码信息五、密码策略配置 SSH远程访问1. 检查SSH服务…...

【数据结构】堆

目录 一、堆 二、堆的模拟实现 1.结构体 2.push 3.pop和top 三.实现堆排序 1.成堆算法 2.堆排序 heap模拟实现源码_gitee 一、堆 分为大堆和小堆 大堆是每个父节点都大于子节点&#xff0c;小堆则相反是每个父节点都小于子节点 底层抽象结构是完全二叉树&#xff0…...

6.824/6.5840 Lab 1: MapReduce

宁静的夏天 天空中繁星点点 心里头有些思念 思念着你的脸 ——宁夏 完整代码见&#xff1a; https://github.com/SnowLegend-star/6.824 由于这个lab整体难度实在不小&#xff0c;故考虑再三还是决定留下代码仅供参考 6.824的强度早有耳闻&#xff0c;我终于也是到了挑战这座高…...

Day5:生信新手笔记 — R语言基本语法

一、数据类型 &#xff08;重点只有两个&#xff0c;剩下的不看&#xff09; 1.1 向量&#xff08;vector&#xff09; 矩阵&#xff08;Matrix&#xff09; 数组&#xff08;Array&#xff09; 1.2 数据框&#xff08;Data frame&#xff09; x<- c(1,2,3) #常用的向…...

lua download

https://www.lua.org/ https://www.lua.org/versions.html#5.4...

安装更新upgrade导致ubuntu崩溃

安装更新导致ubuntu崩溃 前言uuid编不过&#xff0c;导致的崩溃 记录一些ubuntu崩溃的过程。 目前只有一个&#xff0c;以后遇到都放在这里&#xff0c;以提醒自己。 前言 如果从10000年看现在的linux&#xff0c;不是说不完美&#xff0c;而是糟透了。 linux的版本号&#xf…...

软件测试最新项目合集【商城、外卖、银行、金融等等.......】

项目一&#xff1a;ShopNC商城 项目概况&#xff1a; ShopNC商城是一个电子商务B2C电商平台系统&#xff0c;功能强大&#xff0c;安全便捷。适合企业及个人快速构建个性化网上商城。 包含PCIOS客户端Adroid客户端微商城&#xff0c;系统PC后台是基于ThinkPHP MVC构架开发的跨…...

【学习总结|DAY09】Java 流程控制与数据操作练习一:录入三位数并筛选符合条件的数字

一、主要代码&#xff1a; import java.util.Scanner;public class demo07 {public static void main(String[] args) {Scanner scanner new Scanner(System.in);System.out.print("请输入一个大于100的三位数&#xff1a;");int number scanner.nextInt();if (nu…...

“放弃Redis Desktop Manager使用Redis Insight”:日常使用教程(Redis可视化工具)

文章目录 更新Redis Insight连接页面基础解释自动更新key汉化暂时没有找到方法&#xff0c; Redis Desktop Manager在连接上右键在数据库上右键在key上右键1、添加连接2、key过期时间 参考文章 更新 (TωT)&#xff89;~~~ β&#xff59;ё β&#xff59;ё~ 现在在维护另一…...

使用lumerical脚本语言创建弯曲波导并进行数据分析(纯代码实现)

本文使用lumerical脚本语言创建弯曲波导、设置有限差分时域(FDTD)模拟、改变波导弯曲半径计算损耗、绘制图像展示电场强度分布情况及对具有不同弯曲半径的波导进行一系列模拟和分析操作(代码均有注释讲解)。 一、创建弯曲波导 1.1 基本结构讲解 (1)包层(Clad) 在波导结…...

AC+AP漫游实验

实验拓扑 实验要求 1.AP1服务vlan10&#xff0c;AP2服务vlan20&#xff0c;实现三层漫游 2.AP1与AP2为不同AP组&#xff0c;直接转发 实验步骤 1.配置VLAN放行相关流量 交换机与AP接口为trunk口并修改PVID为30 2.配置相关业务使得ap上线 3.配置vap上线&#xff0c;AP可用…...

七:仪表盘安装-controller node

一&#xff1a;工具、环境准备-controller node 二&#xff1a;OpenStack环境准备-controller node 三&#xff1a;安装服务-controller node 四&#xff1a;工具、环境准备-compute node 五&#xff1a;OpenStack环境准备-compute node 六&#xff1a;安装服务-compute node 七…...

pandas习题 067:小于 60 的部分列修改为 60

(编码题)修改以下名为 df 的 DataFrame 的值,将 Q1、Q2、Q3、Q4 列中小于 60 的分数修改为 60。 import pandas as pd# 示例数据 data = {name: [Alice, Bob, Charlie],...

Flutter 版本管理工具FVM

FVM是一款非常好用的Flutter版本管理工具。FVM官网&#xff1a; 下面是使用 FVM&#xff08;Flutter Version Manager&#xff09;管理 Flutter 版本的整个流程&#xff0c;包括安装、配置环境变量以及基本的使用步骤。 1. 安装 FVM FVM 可以通过多种方式安装&#xff0c;下…...

图学习GNN笔记

目录 第一部分&#xff1a;预测分析中的图学习4.3 案例研究&#xff1a;图上的学习机器学习生命周期 第二部分&#xff1a;图特征学习特征表示与嵌入为什么难以学习&#xff1f; 第三部分&#xff1a;节点嵌入嵌入节点设置学习节点嵌入浅层编码如何定义节点相似性&#xff1f; …...

装饰器—购物打折

from collections import namedtuple# 定义促销策略列表 promos []# 装饰器函数&#xff0c;用于注册促销策略 def promotion(promo_func):promos.append(promo_func)return promo_func# 促销策略1&#xff1a;忠诚度积分折扣 promotion def fidelity(order):""&quo…...

【Linux---10】本地机器 <=> 服务器 文件互传

文章目录 1. 小文件互传2. 大文件互传 1. 小文件互传 使用sz命令。 说明&#xff1a;sz命令是ZModem文件传输协议的一部分&#xff0c;用于在Linux和Unix系统中&#xff0c;从本地系统发送&#xff08;send&#xff09;文件到远程系统。sz命令通常与rz命令&#xff08;ZModem接…...

Mysql数据库基础篇笔记

目录 sql语句 DDL——数据库定义语言&#xff08;定义库&#xff0c;表&#xff0c;字段&#xff09; 数据库操作&#xff1a; 表操作&#xff1a; DML 增删改语句 DQL 语法编写顺序&#xff1a; 条件查询 DCL 用户管理&#xff1a; 权限管理&#xff1a; 函数 常见字符串内置函…...

QT 实现QStackedWidget切换页面右移动画

1.实现效果 以下是一个QStackedWidget,放了两个QPushButton在上面,点击切换不同的界面。 为了方便查看动画特效,设置了每个界面的背景图片。 2.实现思路 首先截取当前界面的图片,渲染到一个QLabel上,然后设置QPropertyAnimation动画,动画的作用对象就是这个QLabel,不断…...

RocketMQ rocketmq-tools管理主题

RocketMQ rocketmq-tools管理主题 环境和软件版本增删改查 环境和软件版本 Win10、IDEA、Jdk1.8、rocketmq 5.1.3、rocketmq-tools 5.1.3 引入依赖 <dependency><groupId>org.apache.rocketmq</groupId><artifactId>rocketmq-tools</artifactId&g…...

Docker 容器隔离关键技术:Seccomp

Docker 容器隔离关键技术&#xff1a;Seccomp 在 Docker 容器中&#xff0c;Seccomp&#xff08;Secure Computing Mode&#xff09; 是一种内核安全机制&#xff0c;用来限制容器内的程序可以调用哪些系统调用&#xff08;Syscalls&#xff09;。通过列清单的方式&#xff0c…...

2024年顶级小型语言模型前15名

本文&#xff0c;我们将深入了解2024年备受瞩目的十五款小型语言模型&#xff08;SLMs&#xff09;&#xff0c;它们分别是Llama 3.1 8B、Gemma2、Qwen 2、Mistral Nemo、Phi-3.5等。这些SLMs以其精巧的体积和高效率著称&#xff0c;它们不需要依赖庞大的服务器资源&#xff0c…...

【大模型微调】pdf转markdown

目前市面上大部分都是pdf文档,要想转换成能训练的文本,调研了各种工具。 觉得MinerU确实不错。 参考此链接进行操作 MinerU/docs/README_Ubuntu_CUDA_Acceleration_en_US.md at master opendatalab/MinerU GitHub 需要注意的几个点: 1. 使用root账户安装的,配置文件在…...

【Nacos02】消息队列与微服务之Nacos 单机部署

Nacos 部署 Nacos 部署说明 Nacos 快速开始 Nacos 快速开始 版本选择 当前推荐的稳定版本为2.X Releases alibaba/nacos GitHuban easy-to-use dynamic service discovery, configuration and service management platform for building cloud native applications. - Re…...

PROTEUS资源导引

本专栏讲述51、32单片机的仿真设计&#xff0c;且所有文章资源共享&#xff0c;如需哪篇文章&#xff0c;可按ctrlF键搜索查询&#xff0c;点击进入即可。 -----------------------------------------------------------目录------------------------------------------------…...

对力扣77组合优化的剪枝操作的理解

77. 组合 代码随想录放出了这一张图 我乍一看觉得想当然,但是仔细想想,又不知道以下剪枝代码作何解释,因此我想通过这篇文章简要解释一下 class Solution { private:vector<vector<int>> result;vector<int> path;void backtracking(int n, int k, int sta…...

FFmpeg 4.3 音视频-多路H265监控录放C++开发十九,ffmpeg封装

封装就是将 一个h264&#xff0c;和一个aac文件重新封装成一个mp4文件。 这里我们的h264 和 aac都是来源于另一个mp4文件&#xff0c;也就是说&#xff0c;我们会将 in.mp4文件解封装成一路videoavstream 和 一路 audioavstream&#xff0c;然后 将这两路的 avstream 合并成一…...

http 与 https 汇总

文章目录 http 与 httpsHTTP&#xff08;超文本传输协议&#xff09;介绍1. 基本概念2. 工作原理3. 特点4. 应用场景 HTTPS&#xff08;超文本传输安全协议&#xff09;介绍1. 基本概念2. 工作原理3. 特点4. 应用场景 HTTP协议的工作原理请求阶段响应阶段客户端解析处理 协议的…...

龙蜥 Linux 安装 Nginx

龙蜥 Linux 安装 Nginx 下载编译安装配置编译参数先装依赖编译安装 使用启动检查配置文件重启关闭 503权限问题参考资料 下载 下载地址详情见参考资料&#xff0c;我下的 nginx-1.26.2.tar.gz 到 /home/jerry/ /home/jerry$ curl -O http://nginx.org/download/nginx-1.26.2.…...

8. 一分钟读懂“代理模式”

8.1 模式介绍 代理模式是一种结构型设计模式&#xff0c;它通过提供一个代理对象来替代对另一个对象&#xff08;真实对象&#xff09;的访问。代理对象与真实对象实现相同的接口&#xff0c;并通过代理类对真实对象的访问进行控制&#xff0c;可以在调用前后执行附加操作&…...

分布式搜索引擎Elasticsearch

Elasticsearch是一个基于Lucene库的开源分布式搜索引擎&#xff0c;它被设计用于云计算中&#xff0c;能够实现快速、near-real-time的搜索&#xff0c;并且可以进行大规模的分布式索引。 以下是一个简单的Python代码示例&#xff0c;展示如何使用Elasticsearch的Python客户端…...

完全按照手册win10里装Ubuntu 虚拟机然后编译ESP32(主要是想针对ESP32C3和S3)开发板的鸿蒙系统(失败)

基本上完全按照手册来的&#xff0c;除了Ubuntu虚拟机使用了22.04 Jammy版本&#xff0c;鸿蒙手册里是20.04 版本&#xff0c;主要是鸿蒙里3年前的手册了&#xff0c;所以就擅自用了高版本。 据此还想到一点&#xff0c;鸿蒙LiteOS&#xff0c;还挺稳定的&#xff0c;3年也没有…...

MySQL 8.0与PostgreSQL 15.8的性能对比

以下是MySQL 8.0与PostgreSQL 15.8的性能对比&#xff1a; MySQL 8.0性能特点&#xff1a; MySQL在处理大量读操作时表现出色&#xff0c;其存储引擎InnoDB提供了行级锁定和高效的事务处理&#xff0c;适用于并发读取的场景。MySQL通过查询缓存来提高读取性能&#xff0c;查询缓…...

hive 行转列

行转列的常规做法是&#xff0c;group bysum(if())【或count(if())】 建表: CREATE TABLE table2 (year INT,month INT,amount DOUBLE );INSERT INTO table2 (year, month, amount) VALUES(1991, 2, 1.2),(1991, 3, 1.3),(1991, 4, 1.4),(1992, 1, 2.1),(1992, 2, 2.2),(1992…...

linux——进程间通信system V消息队列

Linux——命名管道及日志-CSDN博客 文章目录 目录 文章目录 前言 一、system V消息队列是什么&#xff1f; 二、相关库接口 1.shmget接口 2、ftok接口 3、shmget、ftok接口封装 4、共享内存操作 ​编辑 5、shmdt接口 三.函数的调用 1、查看共享内存 2、shell 四…...

Seatunnel解决ftp读取json文件无法读取数组以及格式化之后的json无法解析的问题

问题原因 在JsonRead这个方法里面 在源码中使用的逻辑是读取一行 然后把这个json进行解析 但是这样存在一个问题 比如如果json的格式是这样的 { name&#xff1a;“zhangsan”&#xff0c; age&#xff1a;25 } 如果是这样的话 第一行读到的内容就是 { 显然 一个 { 并不是一个…...

[Vue Router warn]: No match found for location with path 解决方法

在使用vue3 vue-router4时 当列表A组件使用 加上keep-alive缓存后&#xff0c;跳转至详情页面时出现 [Vue Router warn]: No match found for location with path "/atlas/editDetails" 解决方案&#xff1a; 把 router.push({ path: "/atlas/editDetails&…...

优傲协作机器人 Remote TCP Toolpath URCap(操作记录)

目录 一、新机设置项 1、设置管理员密码 2、设置安全密码 3、设置负载 二、激活 Remote TCP & Toolpath URCap 1、插入U盘 2、打开激活面板 3、导入许可证 4、查看是否激活成功 5、启用功能 三、使用流程&#xff08;官方&#xff09; 步骤一 步骤二 步骤三 …...

使用历史索引监控 Elasticsearch 索引生命周期管理

作者&#xff1a;来自 Elastic Stef Nestor 大家好&#xff01;在之前的一篇博客中&#xff0c;我们概述了常见的索引生命周期管理 (index lifecycle management - ILM) 问题及其解决方案。此后&#xff0c;我们已将这些常见场景添加到我们的 Elasticsearch 文档中&#xff0c;…...

[网络安全]sqli-labs Less-5 解题详析

[网络安全]Less-5 GET - Double Injection - Single quotes - String:双注入GET单引号字符型注入 判断注入类型判断注入点个数查库名&#xff08;爆破&#xff09; left函数抓包查库名&#xff08;双查询注入&#xff09; 原理实例查库名&#xff08;extractvalue函数&#xff…...

贪心算法入门(一)

第1题 礼物 查看测评数据信息 国庆马上要到了。小明喜欢的礼物有n种分别是&#xff1a;公仔、电子手表、漫画书等。 每种礼物有一件&#xff0c;每种礼物价钱都不一样。小明手头上有 m 元。 小明最多可以买多少件礼物&#xff1f; 输入格式 第一行&#xff0c;两个整数&…...

HTTP 探秘之旅:从入门到未来

文章目录 导言&#xff1a;目录&#xff1a;第一篇&#xff1a;HTTP&#xff0c;互联网的“快递员”第二篇&#xff1a;从点开网页到看到内容&#xff0c;HTTP 究竟做了什么&#xff1f;第三篇&#xff1a;HTTP 的烦恼与进化史第四篇&#xff1a;HTTP 的铠甲——HTTPS 的故事第…...

网络安全技术详解:虚拟专用网络(VPN) 安全信息与事件管理(SIEM)

虚拟专用网络&#xff08;VPN&#xff09;详细介绍 虚拟专用网络&#xff08;VPN&#xff09;通过在公共网络上创建加密连接来保护数据传输的安全性和隐私性。 工作原理 VPN的工作原理涉及建立安全隧道和数据加密&#xff1a; 隧道协议&#xff1a;使用协议如PPTP、L2TP/IP…...

人工智能中的深度学习:原理与实践

什么是深度学习&#xff1f; 深度学习&#xff08;Deep Learning&#xff09;是机器学习的一个分支&#xff0c;旨在通过模拟人脑的神经网络结构来解决复杂的任务。深度学习通过多层神经网络&#xff0c;自动从数据中学习特征&#xff0c;避免了传统机器学习中手动特征工程的繁…...

复现SMPLify-X: Ubuntu22.04, Cuda-11.3, GPU=3090Ti

Env: 3090Ti CUDA 最低支持版本需要>cuda-11.1 Ubuntu 22.04 Installation: Installing CUDA11.3 wget https://developer.download.nvidia.com/compute/cuda/11.3.0/local_installers/cuda_11.3.0_465.19.01_linux.run sudo sh cuda_11.3.0_465.19.01_linux.run …...

qt QGraphicsScale详解

1、概述 QGraphicsScale是Qt框架中提供的一个类&#xff0c;它提供了一种简单而灵活的方式在QGraphicsView框架中实现缩放变换。通过设置水平和垂直缩放因子、缩放中心点&#xff0c;可以创建各种缩放效果&#xff0c;提升用户界面的交互性和视觉吸引力。结合QPropertyAnimati…...

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统

全新首发小利特惠/生活缴费/电话费/油卡燃气/等充值业务类源码附带U商承兑系统 php7.4及以上 / mysql5.6 / 伪静态&#xff1a;thinkphp / 运行目录&#xff1a;/public / 修改数据库&#xff1a;/config/database.php /后台&#xff1a;/admin 账号密码 admin q2821706481 …...