PHP学习:PHP基础
以.php作为后缀结尾的文件,由服务器解析和运行的语言。
一、语法
PHP 脚本可以放在文档中的任何位置。
PHP 脚本以 <?php 开始,以 ?> 结束。
<!DOCTYPE html>
<html>
<body><h1>My first PHP page</h1><?php
echo "Hello World!";
?></body>
</html>
二、变量
PHP中无声明变量,$+变量名即为PHP的变量,在赋值的时候,自动创建变量。
<?php
$txt="Hello world!";
$x=5;
$y=10.5;
?>
PHP 变量规则:
- 变量以 $ 符号开始,后面跟着变量的名称
- 变量名必须以字母或者下划线字符开始
- 变量名只能包含字母、数字以及下划线(A-z、0-9 和 _ )
- 变量名不能包含空格
- 变量名是区分大小写的($y 和 $Y 是两个不同的变量)
三、数据类型
1.String字符串
单行字符串
由双引号包裹的字符组成的序列。
<?php
$x = "Hello world!";
echo $x;
echo "<br>";
$x = 'Hello world!';
echo $x;
?>
字符串连接(并置运算符)
字符串的连接用并置运算符的' . '连接。
<?php
$txt1="Hello world!";
$txt2="What a nice day!";
echo $txt1 . " " . $txt2;
?>
字符串查找(strpos()函数)
用来在目标字符串里查找子串,第一个参数是目标字符串,第二个参数是要查找的子串,返回子串第一次出现的位置。
<?php
echo strpos("Hello world!","world");
?>
//返回6
字符串长度(strlen()函数)
返回字符串的长度。
<?php
echo strlen("Hello world!");
?>
多行字符串EOF
定义多行字符串的方法,可以用来输出html代码块。
<?php
$x= <<<EOF<h1>我的第一个标题</h1><p>我的第一个段落。</p>
EOF;
// 结束需要独立一行且前后不能空格
echo $x
?>
注意事项:
- EOF可以用任意大写字符代替,但要保证开始字符和结束字符相同。
- 结束字符需要独立一行且前后不能空格
- 位于开始标记和结束标记之间的变量可以被正常解析,但是函数则不可以。在EOF中,变量不需要用连接符 . 或 , 来拼接。
2.Integer整型
整型可以用三种格式来指定:十进制, 十六进制( 以 0x 为前缀)或八进制(前缀为 0)。
<?php
$x = 5985;
var_dump($x);
echo "<br>";
$x = -345; // 负数
var_dump($x);
echo "<br>";
$x = 0x8C; // 十六进制数
var_dump($x);
echo "<br>";
$x = 047; // 八进制数
var_dump($x);
?>
var_dump(变量名):可以输出变量的数据类型和值,还可以显示关于一个或多个表达式的结构信息,包括表达式的类型与值。数组将递归展开值,通过缩进显示其结构。
<?php
$a = array(1, 2, array("a", "b", "c"));
var_dump($a);
?>
3.Float浮点型
浮点数是带小数部分的数字,或是指数形式。
<?php
$x = 10.365;
var_dump($x);
echo "<br>";
$x = 2.4e3;
var_dump($x);
echo "<br>";
$x = 8E-5;
var_dump($x);
?>
4.Boolean布尔型
布尔型可以是 TRUE 或 FALSE,布尔型通常用于条件判断。
$x=true;
$y=false;
5.Array数组
创建数组
使用函数 array()创建数组。
<?php
$cars=array("Volvo","BMW","Toyota");
var_dump($cars);
?>
数值数组
数值数组就是普通的一维数组。
<?php
$cars=array("Volvo","BMW","Toyota");
echo "I like " . $cars[0] . ", " . $cars[1] . " and " . $cars[2] . ".";
?>
关联数组
关联数组更像映射map数组,需要指定键值和键名,键名要用符号 " => " 与键值连接。
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
echo "Peter is " . $age['Peter'] . " years old.";
?>
多维数组
语法
array (array (elements...),array (elements...),...
)
多维数组就是一维数组里的元素还是一维数组。
<?php
// 二维数组:
$cars = array
(array("Volvo",100,96),array("BMW",60,59),array("Toyota",110,100)
);
?>
<?php
$sites = array
("runoob"=>array("菜鸟教程","http://www.runoob.com"),"google"=>array("Google 搜索","http://www.google.com"),"taobao"=>array("淘宝","http://www.taobao.com")
);
print("<pre>"); // 格式化输出数组
print_r($sites);
print("</pre>");
?>
遍历数组
count()函数:返回数组的长度
<?php
$cars=array("Volvo","BMW","Toyota");
$arrlength=count($cars);for($x=0;$x<$arrlength;$x++)
{echo $cars[$x];echo "<br>";
}
?>
数组排序
- sort() - 对数组进行升序排列
- rsort() - 对数组进行降序排列
- asort() - 根据关联数组的值,对数组进行升序排列
- ksort() - 根据关联数组的键,对数组进行升序排列
- arsort() - 根据关联数组的值,对数组进行降序排列
- krsort() - 根据关联数组的键,对数组进行降序排列
<?php$cars=array("Volvo","BMW","Toyota");sort($cars);
?>
6.Object对象
使用class声明对象,内部要定义一个构造函数,在新建对象时候自动调用。
<?php
class Car
{var $color;function __construct($color="green") {//构造函数$this->color = $color;}function what_color() {return $this->color;}
}
?>
7.Resource资源类型
resource 是一种特殊变量,保存了到外部资源的一个引用。常见资源数据类型有打开文件、数据库连接、图形画布区域等。
由于资源类型变量保存有为打开文件、数据库连接、图形画布区域等的特殊句柄,因此将其它类型的值转换为资源没有意义。
使用 get_resource_type() 函数可以返回资源(resource)类型。
<?php
$c = mysql_connect();
echo get_resource_type($c)."\n";
// 打印:mysql link$fp = fopen("foo","w");
echo get_resource_type($fp)."\n";
// 打印:file$doc = new_xmldoc("1.0");
echo get_resource_type($doc->doc)."\n";
// 打印:domxml document
?>
七、条件判断语句
if.......else条件语句
<?php
$t=date("H");
if ($t<"10")
{echo "Have a good morning!";
}
elseif ($t<"20")
{echo "Have a good day!";
}
else
{echo "Have a good night!";
}
?>
switch条件语句
<?php
$favcolor="red";
switch ($favcolor)
{
case "red":echo "你喜欢的颜色是红色!";break;
case "blue":echo "你喜欢的颜色是蓝色!";break;
case "green":echo "你喜欢的颜色是绿色!";break;
default:echo "你喜欢的颜色不是 红, 蓝, 或绿色!";
}
?>
八、循环
1.while循环
<html>
<body><?php
$i=1;
while($i<=5)
{echo "The number is " . $i . "<br>";$i++;
}
?></body>
</html>
2.do....while循环
<html>
<body><?php
$i=1;
do
{$i++;echo "The number is " . $i . "<br>";
}
while ($i<=5);
?></body>
</html>
3.for循环
<?php
for ($i=1; $i<=5; $i++)
{echo "数字为 " . $i . PHP_EOL;
}
?>
4.foreach循环
语法:数值数组
每进行一次循环,当前数组元素的值就会被赋值给 $value 变量(数组指针会逐一地移动),在进行下一次循环时,您将看到数组中的下一个值。
foreach ($array as $value)
{要执行代码;
}
案例:
<?php
$x=array("Google","Runoob","Taobao");
foreach ($x as $value)
{echo $value . PHP_EOL;//PHP_EOL: 这是一个 PHP 内置的常量,表示特定操作系统下的换行符。
}
?>
语法:关联数组
每一次循环,当前数组元素的键与值就都会被赋值给 $key 和 $value 变量(数字指针会逐一地移动),在进行下一次循环时,你将看到数组中的下一个键与值
foreach ($array as $key => $value)
{要执行代码;
}
案例:
<?php
$x=array(1=>"Google", 2=>"Runoob", 3=>"Taobao");
foreach ($x as $key => $value)
{echo "key 为 " . $key . ",对应的 value 为 ". $value . PHP_EOL;
}
?>
九、函数
1.自定义函数
语法:
<?php
function functionName()
{// 要执行的代码return 返回值
}
?>
案例:
<?php
function add($x,$y)
{$total=$x+$y;return $total;
}echo "1 + 16 = " . add(1,16);
?>
2.isset函数
语法:
bool isset( $var )
返回值:
isset() 返回一个布尔类型的值。
- true :变量「已定义」
- false:变量「未定义」或变量为 NULL 或 变量被 unset()
3.include函数和require函数
二者的作用都是在一个php文件插入另一个文件并执行,但二者有区别。
- require 一般放在 PHP 文件的最前面,程序在执行前就会先导入要引用的文件;
- include 一般放在程序的流程控制中,当程序执行时碰到才会引用,简化程序的执行流程。
- require 引入的文件有错误时,执行会中断,并返回一个致命错误;
- include 引入的文件有错误时,会继续执行,并返回一个警告。
- 对于include() 语句来说,在执行文件时每次都要进行读取和评估;
- 对于 require() 来说,文件只处理一次(实际上,文件内容替换 require() 语句)
案例:
<?php
include 'test-nothing.php';
echo 'abc';
?>
十、常量
定义常量define
语法:
bool define ( string $name , mixed $value [, bool $case_insensitive = false ] )
case_insensitive :可选参数,如果设置为 TRUE,该常量则大小写不敏感,默认是大小写敏感的。
案例:
<?php
// 区分大小写的常量名
define("GREETING", "欢迎访问 Runoob.com");
echo GREETING; // 输出 "欢迎访问 Runoob.com"
echo '<br>';
echo greeting; // 输出 "greeting",但是有警告信息,表示该常量未定义
?>
定义常量const
语法:
const CONSTANT_NAME = "value";
案例:
const SITE_URL = "https://www.runoob.com";
echo SITE_URL; // 输出 "https://www.runoob.com"
总结
这两种常量的定义方法在引用时候无需加$,因为其为常量不是变量。
十一、超级全局变量
超级全局变量(superglobals) ,这意味着它们在一个脚本的全部作用域中都可用。 你不需要特别说明,就可以在函数及类中使用。
变量名 | 解释 |
---|---|
$_COOKIE | 存储客户端的 Cookie 数据的全局数组 |
$_GET | 接受所有以 get 方式发送的请求的全局数组 |
$_POST | 接受所有以 post 方式发送请求的全局数组 |
$_REQUEST | 用于收集来自 HTTP 请求的数据 |
1.$_GET
获取url问号后面的数据,在url里#是锚定位符,GET方法无法获取锚定位符后面的内容。
案例:
<?php
$name = $_GET['name']; // "John"
$age = $_GET['age']; // "25" echo "姓名: " . htmlspecialchars($name) . "<br>";
echo "年龄: " . htmlspecialchars($age); //htmlspecialchars() 或 filter_input()可以避免SQL 注入和 XSS(跨站脚本攻击)
?>
<?php
$q = isset($_GET['q'])? htmlspecialchars($_GET['q']) : '';
if($q) {if($q =='RUNOOB') {echo '菜鸟教程<br>http://www.runoob.com';} else if($q =='GOOGLE') {echo 'Google 搜索<br>http://www.google.com';} else if($q =='TAOBAO') {echo '淘宝<br>http://www.taobao.com';}
} else {?><form action="" method="get"> <input type="radio" name="q" value="RUNOOB" />Runoob<input type="radio" name="q" value="GOOGLE" />Google<input type="radio" name="q" value="TAOBAO" />Taobao<input type="submit" value="提交">
</form><?php
}
?>
2.$_POST
获取由POST方法提交的参数。
案例:
<?php
$q = isset($_POST['q'])? $_POST['q'] : '';
if(is_array($q)) {$sites = array('RUNOOB' => '菜鸟教程: http://www.runoob.com','GOOGLE' => 'Google 搜索: http://www.google.com','TAOBAO' => '淘宝: http://www.taobao.com',);foreach($q as $val) {// PHP_EOL 为常量,用于换行echo $sites[$val] . PHP_EOL;}} else {?><form action="" method="post"> <input type="checkbox" name="q[]" value="RUNOOB"> Runoob<br> <input type="checkbox" name="q[]" value="GOOGLE"> Google<br> <input type="checkbox" name="q[]" value="TAOBAO"> Taobao<br><input type="submit" value="提交">
</form><?php
}
?>
3.$_COOKIE
设置Cookie
语法:
setcookie(name, value, expire, path, domain);
参数说明:
name(必需):
这是 cookie 的名称。它是一个字符串,必须符合变量命名规则。
value(必需):
这是与 cookie 关联的值。它是一个字符串,表示你要存储在客户端的内容。
expire(可选):
这是 cookie 过期的时间。它是一个 Unix 时间戳(即从1970年1月1日到现在的秒
数),可以通过
time()
函数来获取当前的时间戳。如果设置为 0,cookie 会在浏览器会话结束时过期;如果设置为将来的时间,则 cookie 会在指定的时间到期。
path(可选):
- 这是 cookie 可用的路径。默认值是当前脚本的路径。设置此参数可以限制 cookie 的可用范围。例如,如果设置为
/
,那么该 cookie 可以在整个域名下的所有路径中使用。domain(可选):
- 这是 cookie 可用的域名。可以用来设置 cookie 的作用域。默认情况下,cookie 将只在所发出的域名下有效。如果指定了子域名(例如
example.com
),则 cookie 也可以在子域名(如www.example.com
和sub.example.com
)下使用。
案例:
setcookie() 函数用于设置 cookie,且setcookie() 函数必须位于 <html> 标签之前。
<?php
$expire=time()+60*60*24*30;
setcookie("user", "runoob", $expire);
?><html>
.....
获取Cookie的值
使用$_COOKIE超级全局数组来获取前面设定的Cookie值。
<html>
<head>
<meta charset="utf-8">
<title>菜鸟教程(runoob.com)</title>
</head>
<body><?php
if (isset($_COOKIE["user"]))echo "欢迎 " . $_COOKIE["user"] . "!<br>";
elseecho "普通访客!<br>";
?></body>
</html>
案例使用了isset函数来判断是否设置了Cookie
4.$_REQUEST
$_REQUEST
是 PHP 中的一个超全局数组,用于收集来自 HTTP 请求的数据。它包含了$_GET
、$_POST
两个数组中传递的数据。使用$_REQUEST
时,可以方便地获取这两种方式发送的请求参数。
案例:
// 假设用户通过 GET 或 POST 请求传递了一个名为 "username" 的参数
$username = $_REQUEST['username']; // 处理参数...
echo "Hello, " . htmlspecialchars($username);
十二、面向对象(类)
十三、命名空间
1.定义命名空间
语法:
<?php
// 定义代码在 'MyProject' 命名空间中
namespace MyProject; // ... 代码 ...
案例: 单个文件多个命名空间(不推荐)
<?php
namespace MyProject;const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }namespace AnotherProject;const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
?>
案例: 单个文件多个命名空间(推荐)
<?php
namespace MyProject {const CONNECT_OK = 1;class Connection { /* ... */ }function connect() { /* ... */ }
}namespace AnotherProject {const CONNECT_OK = 1;class Connection { /* ... */ }function connect() { /* ... */ }
}
?>
当使用全局代码和命名空间代码混用时候,必须使用花括号{},并且HTML页面代码应该另写在一个不包含命名空间的文件里,通过require和include函数来引入。
<?php
namespace MyProject {const CONNECT_OK = 1;
class Connection { /* ... */ }
function connect() { /* ... */ }
}namespace { // 全局代码
session_start();
$a = MyProject\connect();
echo MyProject\Connection::start();
}
?>
2.子命名空间
相当于目录与子目录的关系
<?php
namespace MyProject\Sub\Level{ //声明分层次的单个命名空间const CONNECT_OK = 1;class Connection { /* ... */ }function Connect() { /* ... */ }
}?>
十四、文件操作
1.fopen()函数
用于在php打开文件。
语法:
fopen("文件名","参数")
案例:
<html>
<body><?php
$file=fopen("welcome.txt","r");
?>
</body>
</html>
2.fwrite()函数
用来向文件写入信息。
语法:
fwrite(file,string,length)
//file 必需。规定要写入的打开文件。
//string 必需。规定要写入文件的字符串。
//length 可选。规定要写入的最大字节数。
案例:
<?php
$file = fopen("test.txt","w");
echo fwrite($file,"Hello World. Testing!");
fclose($file);
?>
3.fclose()函数
用来关闭文件。
案例:
<?php
$file = fopen("test.txt","r");//执行一些代码fclose($file);
?>
4.feof() 函数
检测是否已到达文件末尾(EOF),返回值为bool类型。
注意:在 w 、a 和 x 模式下,您无法读取打开的文件!
案例:
if (feof($file)) echo "文件结尾";
5.fgets() 函数
从文件中逐行读取文件。
注意:在读取完一行后,指针会移动到新的一行。
案例:
<?php
$file = fopen("welcome.txt", "r") or exit("无法打开文件!");
// 读取文件每一行,直到文件结尾
while(!feof($file))
{echo fgets($file). "<br>";
}
fclose($file);
?>
6.fgetc() 函数
从文件中逐字符地读取文件。
注意:在调用该函数之后,文件指针会移动到下一个字符。
案例:
<?php
$file=fopen("welcome.txt","r") or exit("无法打开文件!");
while (!feof($file))
{echo fgetc($file);
}
fclose($file);
?>
参考资料
PHP 教程 | 菜鸟教程 (runoob.com)
相关文章:
PHP学习:PHP基础
以.php作为后缀结尾的文件,由服务器解析和运行的语言。 一、语法 PHP 脚本可以放在文档中的任何位置。 PHP 脚本以 <?php 开始,以 ?> 结束。 <!DOCTYPE html> <html> <body><h1>My first PHP page</h1><?php …...
Xinstall新玩法:Web直接打开App,用户体验再升级!
在移动互联网时代,App已成为我们日常生活中不可或缺的一部分。然而,在App推广和运营过程中,许多开发者面临着从Web端引流到App的难题。这时,Xinstall作为国内专业的App全渠道统计服务商,提供了一种创新的解决方案——通…...
perf 排查高延迟
高延迟的 2 个场景,触发 perf 录包思路 当前 perf 没有常驻内存,后续提供 perf 常驻内存功能。且 perf 启动需要 0.5~1s,所以,存在 2 个场景 1.频繁连续高延迟(复现后的几秒内,继续频繁复现)&a…...
配置8188eu无线网卡的热点模式
下载驱动 github:8188eu的最新驱动,注意下载5.2.2.4分支 关于这一驱动,不要下载master分支,master分支代码较早,会导致以下两点问题: 1.STA模式下连接wifi信号较差时会卡死 2.无法启动AP模式 所以请务必下载5.2.2.4分…...
为什么 DDoS 攻击偏爱使用 TCP 和 UDP 包?
Distributed Denial of Service (DDoS) 攻击是指攻击者利用多个计算机系统或网络设备(通常是被恶意软件感染的计算机,被称为“僵尸网络”)来淹没目标服务器的资源,导致合法用户无法访问服务。TCP 和 UDP 是两种最常见的用于 DDoS …...
多址技术(FDMA,TDMA,CDMA,帧,时隙)(通俗易懂)
多址技术是一种区分用户的技术。 举个例子,一个基站发出信息,如何确定是发给谁的? 这个技术就是解决这个问题的。 多址技术常见的有三种: 频分多址(FDMA)、时分多址(TDMA)、码分…...
基于 KubeSphere 的 Kubernetes 生产环境部署架构设计及成本分析
转载:基于 KubeSphere 的 Kubernetes 生产环境部署架构设计及成本分析 前言 导图 1. 简介 1.1 架构概要说明 今天分享一个实际小规模生产环境部署架构设计的案例,该架构设计概要说明如下: 本架构设计适用于中小规模(<50)的 Kubernetes …...
RabbitMQ 入门篇
接上一篇《RabbitMQ-安装篇(阿里云主机)-CSDN博客》 安装好RabbitMQ后,我们将开始RabbitMQ的使用,根据官网文档RabbitMQ Tutorials | RabbitMQ,我们一步一步的学习。 1. "Hello World!" 这里先说明几个概…...
【赛事】2024第五届“华数杯”全国大学生数学建模竞赛
为了培养学生的创新意识及运用数学方法和计算机技术解决实际问题的能力,天津市未来与预测科学研究会、中国未来研究会大数据与数学模型专业委员会(协办)决定举办华数杯全国大学生数学建模竞赛。竞赛的目标是为培养大学生的科学精神及运用数学…...
DB管理客户端navicat、DBever、DbVisualizer数据库连接信息迁移
DB管理客户端Navicat、DBever、DbVisualizer数据库连接信息迁移 第三方数据库连接工具为了确保数据库信息安全通常对保存的数据库连接密码进行加密,填入后想再拿到原文就不可能了,有时交接给别人或者换电脑时可以通过连接数据导出的方式来解决。 Navic…...
CF 训练2
688 div2 C Balanced Bitstring 思路:首先对于区间问题 , 我们可以先思考让它滑动滑动。对于[l,r],向后滑动一位后 ,[l1 , r1],因为两次的区间中 , [l1 ,r]中所有数都是相同的 , 所以 可以得到s[l] s[r1] ࿰…...
内网隧道学习笔记
1.基础: 一、端口转发和端口映射 1.端口转发是把一个端口的流量转发到另一个端口 2.端口映射是把一个端口映射到另一个端口上 二、http代理和socks代理 1.http带那里用http协议、主要工作在应用层,主要用来代理浏览网页。 2.socks代理用的是socks协议、…...
Umi-OCR:功能强大且易于使用的本地照片识别软件
Umi-OCR是一款开源且免费的离线OCR(光学字符识别)软件,可让您轻松从照片中提取文本。它支持多种语言,并具有许多其他功能使其成为照片识别任务的绝佳选择。 Umi-OCR的优势 离线操作: Umi-OCR无需互联网连接即可工作&…...
HarmonyOS开发商城商品详情-底部导航
目录 一:功能概述 二:代码实现 三:效果图 一:功能概述 上一节我们实现了商品详情页基础信息展示,这一节主要实现底部立即购买和加入购物车的功能。首先我们需要在底部创建两个按钮,这两个按钮固定字底部,不随页面滚动。点击添加购物车按钮,会出现一个对话框,显示商…...
C语言 ——— 学习、使用 strcat函数 并模拟实现
目录 学习strcat函数编辑 使用strcat函数编辑 模拟实现strcat函数 学习strcat函数 strcat函数所需要的头文件: #include<string.h> strcat函数的参数解析: 将 source 字符串追加到 destination 字符串。destination 中的字符串结束标志…...
视频超压缩保持质量 ffmpeg
参考: https://x.com/mortenjust/status/1817991110544744764 基于 FFMpeg 的 H264 压缩标准,实现压缩 90% 的视频大小 在线体验地址: https://tools.rotato.app/compress ffmpeg命令执行 ffmpeg -i "C:\Users\loong\Downloads\屏幕录…...
大型语言模型入门
大型语言模型ChatGPT 快速、全面了解大型语言模型。学习李宏毅课程笔记。 ChatGPT 目前由OpenAI公司发明的非常火的人工智能AI应用ChatGPT,到底是什么原理呢? G:Generative(生成) P:Pre-trained(预训练) T:Transform…...
canvas-视频绘制
通过Canvas元素来实时绘制一个视频帧,并在视频帧上叠加一个图片的功能可以当作水印。 获取Canvas元素: let canvas document.getElementById(canvas) 通过getElementById函数获取页面中ID为canvas的Canvas元素,并将其存储在变量canvas中。 …...
红酒与美食搭配:味觉的新探索
在美食的世界里,红酒如同一位优雅的舞者,与各种佳肴共舞,创造出无尽的味觉惊喜。当定制红酒洒派红酒(Bold & Generous)与各式美食相遇,便开启了一场味觉的新探索之旅。 一、红酒与美食的邂逅ÿ…...
大模型日报 2024-08-02
大模型日报 2024-08-02 大模型资讯 博思艾伦在国际空间站部署先进语言模型 摘要: 博思艾伦在国际空间站上的超级计算机上运行了一种生成式人工智能大型语言模型。这一举措标志着语言模型在太空应用方面的重大进展。 人工智能助力研发安全有效的新型抗生素对抗耐药细菌 摘要: 德…...
【Pytorch】一文向您详细介绍 torch.sign()
🎉🧠**【Pytorch】一文向您详细介绍 torch.sign()** 下滑即可查看博客内容 🌈 欢迎莅临我的个人主页 👈这里是我静心耕耘深度学习领域、真诚分享知识与智慧的小天地!🎇 🎓 博主简介ÿ…...
超级详细,如何手动安装python第三方库?
文章目录 1,python第三方库安装包有3种类型2,python第三方库安装包whl文件如何安装?3,python第三方库安装包zip和tar.gz文件如何安装?4, python第三方库安装包exe文件如何安装? 手动安装第三方库…...
WebSocket协议测试
WebSocket和HTTP接口有什么不一样 websocket和http都是网络接口数据交换的协议。都是基于TCP 协议区别 http:每次数据交互都是一个全新的请求;主动发起http请求调用(非实时) websocket:建立长久网络连接,服务器/客户端可以相互主动发数据…...
浅谈【C#】代码注册COM组件
在C#中注册COM组件通常涉及到使用regasm工具或者在代码中使用System.Runtime.InteropServices命名空间下的RegisterTypeForComClients方法。 下面是两种方法的简要说明和示例: 1、使用 regasm 工具 regasm 是一个命令行工具,用于将.NET程序集注册为CO…...
C++数据结构学习(顺序表)
文章目录 顺序表杭州电子科技大学在线评测2008 数值统计使用顺序表实现 2014 青年歌手大奖赛_评委会打分 Leetcode题目[LCP 01. 猜数字](https://leetcode.cn/problems/guess-numbers/description/)[LCP 06. 拿硬币](https://leetcode.cn/problems/na-ying-bi/description/)[20…...
springboot宠物用品商城系统-前端-计算机毕业设计源码74346
摘要 基于微信小程序的宠物用品商城系统是一个集商品展示、在线购物、支付结算、用户管理等功能于一体的综合性电商平台。该系统充分利用微信小程序的便捷性和用户基础,为宠物爱好者提供了一个方便、快捷的购物体验。 同时,该系统还具备完善的用户管理功…...
【vue预览PDF文件的几种方法】
vue展示PDF文件的几种方法 使用Vue插件 你需要安装vue-pdf-embed: npm install vue-pdf-embed<template><div class"pdf-container"><VuePdfEmbed :src"pdfUrl" /></div> </template><script setup lang"ts"…...
学习安卓开发遇到的问题(未解决版,有没有人帮我看看,大哭,感谢)
问题1:学习禁用与恢复按钮中: java代码报错:报错代码是 R.id.btn_enable;case R.id.btn_disable;case R.id.btn_test: 代码如下:(实现功能在代码后面) package com.example.apptest;import static java.…...
C++必修:STL之vector的模拟实现
✨✨ 欢迎大家来到贝蒂大讲堂✨✨ 🎈🎈养成好习惯,先赞后看哦~🎈🎈 所属专栏:C学习 贝蒂的主页:Betty’s blog 为了让我们更加深入理解vector,接下来我们将模拟实现一个简易版的vect…...
Unity Camera
课程目标 1. 了解摄像机(camera)不同视角的设计与实现;2. 感受在不同摄像机视角下观察虚拟场景。 喜欢玩游戏或者看3D动漫的朋友可以回忆在虚拟场景中摄像头的运动变化带来的视觉感受,例如:摄像头给场景中的主角来个…...
网站如何强制修改主页 源码/关键词优化师
数字是表示计数的抽象事物,也是数学运算和推理的基础,所以,生活中数字是生活中无处不在的,那么,在python语言中运用数字有哪些小知识呢,不妨花点时间看一下这篇博文,牢记这些小知识。 整数类型中…...
抚宁网站建设/推广普通话宣传语100字
已结贴√问题点数:10 回复次数:21关于田忌赛马问题.。。帮忙看下。。谢谢了。。题目描述Here is a famous story in Chinese history."That was about 2300 years ago. General Tian Ji was a high official in the country Qi. He likes to play h…...
怎么创建音乐网站/推广关键词怎么设置
最短路径分析属于ArcGIS的网络分析范畴。而ArcGIS的网络分析分为两类,分别是基于几何网络和网络数据集的网络分析。它们都可以实现最短路径功能。下面先介绍基于几何网络的最短路径分析的实现。以后会陆续介绍基于网络数据集的最短路径分析以及这两种方法的区别。 几…...
怎么在服务器做网站/班级优化大师头像
作者简介: 李中凯老师,8年前端开发,前端负责人,擅长JavaScript/Vue。 公众号:1024译站 掘金文章专栏:https://juejin.im/user/57c7cb8a0a2b58006b1b8666/posts 主要分享:Vue.js, Jav…...
管家婆软件/网站排名优化软件联系方式
1088 三人行 (20分) 子曰:“三人行,必有我师焉。择其善者而从之,其不善者而改之。” 本题给定甲、乙、丙三个人的能力值关系为:甲的能力值确定是 2 位正整数;把甲的能力值的 2 个数字调换位置就是乙的能力值…...
wordpress隐私提示/企业推广宣传方式
在使用MyBatis插入数据进入数据库的时候会用到sequence序列来生成自增的id 这时可以使用selectKey就可以得到sequence的值,同时也会将值返回。不过对于不同的数据库有不同的操作方式。 oracle: < insert id“insertTeacher” parameterClass“map”&g…...