渐进式编程之旅:探寻PHP函数的奇妙世界

news2025/1/15 13:39:36

 

目录

前言

一、函数的定义和调用

1.1 初识函数

1.1.1 函数分类

1.1.2 自定义函数

1.1.3 return关键字

1.2 参数设置

1.2.1 无参函数

1.2.2 按值传递参数

1.2.3 引用传参

1.2.4 设置参数默认值

1.2.5 指定参数类型(弱)

1.3 变量的作用域

1.3.1 变量分类

1.3.2 全局变量的使用

1.3.3 global关键字

二、函数的嵌套调用

2.1 嵌套调用

2.2 递归调用

三、函数的高级应用

3.1 静态变量

3.2 可变函数

3.3 回调函数

3.4 匿名函数

四、PHP的内置函数

4.1 字符串函数

4.2 数学函数

4.3 时间日期函数

总结


🌈嗨!我是Filotimo__🌈。很高兴与大家相识,希望我的博客能对你有所帮助。

💡本文由Filotimo__✍️原创,首发于CSDN📚。

📣如需转载,请事先与我联系以获得授权⚠️。

🎁欢迎大家给我点赞👍、收藏⭐️,并在留言区📝与我互动,这些都是我前进的动力!

🌟我的格言:森林草木都有自己认为对的角度🌟。

前言

欢迎来到渐进式编程之旅!在编程的世界中,函数是一种强大而重要的工具,而PHP函数更是让我们能够创造出令人惊叹的网络应用程序和网站的关键。你是否曾经想过探寻PHP函数的奇妙世界,深入了解它们的工作原理以及如何利用它们来解决编程难题?本文将带你踏上这个神奇之旅,一起揭开PHP函数的面纱,探索这个渐进式编程世界的无限可能性。

 这是本篇文章的脉络图:


一、函数的定义和调用

1.1 初识函数

1.1.1 函数分类

PHP 的真正威力源自于它的函数。在 PHP 中,提供了超过 1000 个内建的函数。

php函数分为:系统内部函数和自定义函数。

函数:封装一段用于完成特定功能的代码。

当使用一个函数时,只需关心函数的参数和返回值,就可以完成一个特定的功能。

PHP 函数准则:

1.函数的名称应该提示出它的功能

2.函数名称以字母或下划线开头(不能以数字开头)

1.1.2 自定义函数

自定义函数顾名思义,就是需要我们自己来定义的函数。我们在实际开发当中需要很多功能去反复调用,而这些反复要使用到的功能,我们可以定义成功能(函数)。

函数的定义由以下4部分组成:

1.关键字function

2.函数名

3.参数

4.函数体

格式

function 函数名([参数1, 参数2, ……])
{
函数体……
}

注:

1.function:在声明函数时必须使用的关键字。

2.函数名:要符合PHP的标识符,且函数名是唯一的,不区分大小写。

3.[参数1, 参数2…]:外界传递给函数的值,它是可选的,多个参数之间使用逗号“,”分隔。

4.函数体:函数定义的主体,专门用于实现特定功能的代码段。

5.返回值:需要使用return关键字将需要返回的数据传递给调用者。

函数只有被调用后,才开始真正执行函数中的代码,执行完毕,返回调用函数的位置继续向下执行。

注:

1、通过函数名实现调用,可以在函数声明之前调用,也可在之后。

2、如果函数有参数,可以通过传递参数改变函数内部代码执行。

3、如果函数有返回值,当函数执行完毕后,函数名可以当作保存值的变量使用。

1.1.3 return关键字

在大部分编程语言中,return关键字可以将函数的执行结果返回,PHP中return的用法也大同小异,对初学者来说,掌握PHP中return的用法也是学习PHP的一个开始。

首先,它的意思就是返回,return()是语言结构而不是函数。 它的作用是将函数的值传递给调用者,同时终止函数。它只有一个返回值。

注意:如果执行了return,则return语句后面的内容将不会被执了。

例如:

<?php
function demo(){
return "111111";
echo "3333";
return "222222";
}
echo demo();
?>

输出结果:

1.2 参数设置

对于函数来说,参数的不同设置,决定了其调用和使用方式。

1.2.1 无参函数

适用于不需要提供任何的数据即可以完成指定功能的情况。

例如:

function shout()
{
return 'come on';
}
echo shout();// 输出结果:come on

1.2.2 按值传递参数

PHP默认支持按值传递参数,按此种方式定义的函数,在函数内部可以随意对用户传递的参数进行操作。

例如:

// 方式一
echo add(5, 7);
// 方式二
$x = 5;
$y = 7;
echo add($x, $y);
function add($a, $b)
{
    $a = $a + $b;
    return $a;
}

注意:默认值必须是常量表达式,不能是变量。如果函数有多个参数,可以为多个参数指定

默认值。但是,带默认值的参数只能位于参数列表的最后,即一个默认值参数的右边不能出

现没有指定参数值的参数。

例如:

function setPoint($x,$z,$y=0){
echo "{".$x.",".$y.",".$z."}";
}
setPoint(5,90);

1.2.3 引用传参

在开发中,若需要函数修改它的参数值,则需通过函数参数的引用传递。实现方式只需在参数前添加“&”符号即可。

例如:

$var = 'food';
extra($var);
// 输出结果:food and some extra
echo $var;
function extra(&$str)
{
    $str .= ' and some extra';
}

1.2.4 设置参数默认值

函数参数在设置时,还可以为其指定默认值,也就是可选参数。当调用者未传递该参数时,函数将使用默认值进行操作。

例如:

function say($p, $con = 'say "Hello"')
{
return "$p $con";
}
// 输出结果:Tom say "Hello" 
echo say('Tom');

1.2.5 指定参数类型(弱)

在PHP 7.0及以上的版本后,在自定义函数时,可以指定参数具体是哪种数据类型。

当用户调用函数时,如果传递的参数不是int类型,程序会将其强制的转换为int型后,再进行操作,这种方式称为弱类型参数设置。

例如:

function sum1(int $a, int $b)
{
return $a + $b;
}
echo sum1(2.6, 3.8); // 输出结果:5

除此之外,还可以将其设置为强类型的参数,即当用户传递的参数类型不符合函数的定义,程序会报错提醒。

例如:

declare(strict_types = 1);//是php7引入的严格类型检查模式的指定语法
function sum2(int $a, int $b)
{
return $a + $b;
}
echo sum2(2.6, 3.8); // 输出结果:Fatal error: ......

1.3 变量的作用域

1.3.1 变量分类

变量只有在其作用范围内才可以被使用,这个作用范围称为变量的作用域。

1.在函数中定义的变量称为局部变量

2.在函数外定义的变量称为全局变量

示例

function test()
{
$sum = 36; // 局部变量
return $sum;
}
$sum = 0; // 全局变量
echo test(); // 输出结果:36
echo $sum; // 输出结果:0

1.3.2 全局变量的使用

在函数中可以通过参数传递,global关键字和超全局变量$GLOBALS[‘x’]使用全局变量。

1.通过global关键字使用全局变量:

$x=100;
function test(){
global $x;$y=10;
return $x+$y;
}
echo test();//110

2.通过超全局变量$GLOBALS[‘x’]使用全局变量:

$x=100;
function test(){
$y=10;
return $GLOBALS['x']+$y;
}
echo test();//110

1.3.3 global关键字

我们经常会遇到一种情况,在函数外部声明了一个全局变量后,我们想在函数内部访问或者修改这一全局变量,这里我们就需要使用一个叫global的关键字来实现。

global作用:在函数内创建一个局部变量,使用global关键字使其成为全局变量的同名引用。我们需要借助global关键字来实现。

例如:

<?php
$var = '1';//全局变量
function foo(){
global $var;//在函数内创建一个局部变量,使用global关键字使其成为全局变量的同名引用
$var = '2';
}
foo();
echo $var;//2
?>

二、函数的嵌套调用

2.1 嵌套调用

嵌套调用:指的是在调用一个函数的过程中,调用另外一个函数,这种在函数内调用其他函数的方式称为嵌套调用。

1、所谓嵌套函数,就是在函数中定义并调用其他函数。

2、嵌套函数可以将一个复杂的功能分解成多个子函数,再通过调用的方式结合起来,有利于提高函数的可读性。

举例:班主任老师要计算每个学生语文和数学平均分,其实现思路是首先编写一个函数用于计算学生的语文和数学的总分,然后再编写一个函数用于实现学生的平均分。

<?php
function sum($yuwen,$shuxue){
$sun=$yuwen+$shuxue;
return $sun;
}
function avg($yuwen,$shuxue){
$avg=sum($yuwen,$shuxue)/2;
return $avg;
}
echo avg(50,20);
?>

2.2 递归调用

递归调用:是函数嵌套调用中一种特殊的调用。它指的是一个函数在其函数体内调用自身的过程,这种函数成为递归函数。

递归调用是一种解决方案,一种逻辑思想,将一个大工作分为逐渐减小的小工作,只不过在程序中,就是依靠函数嵌套这个特性来实现了。

举例:求n的阶乘,计算公式为1×2×3×…×n。如4的阶乘等于1×2×3×4=24。

用for循环的方法思路:因为求n的阶乘,就是求1乘以2乘以3...一直乘到n的乘积。所以for循环的初始条件可设置为 i = 1,限制条件可以是 i <= n 或者 i < n+1。 然后循环体中的就是乘法运算了,将每次循环的 i 值相乘,得到一个乘积。最后输出乘积即可。

用递归的方法:

<?php
function Fact($n) {
$sum=1;
if($n <= 1){
return 1;
}else{
$sum = $n * fact($n-1);
return $sum;
}
}
echo "2 的阶乘为: " .Fact(2)."<br><br>";
echo "3 的阶乘为: " .Fact(3)."<br><br>";
echo "4 的阶乘为: " .Fact(4)."<br><br>";
echo "10 的阶乘为: " .Fact(10);
?>

三、函数的高级应用

3.1 静态变量

所有的全局变量都是静态变量,而局部变量只有定义时加上类型修饰符static,才为局部静态变量。

通过在函数中使用静态变量可以轻松得到一个函数被访问的次数。

举例

1.局部变量的例子:

<?php
function num()
{
$i = 1;
echo $i;
++$i;
}
echo num();
echo "<br />";
echo num();
?>

说明:第1次调用函数num()输出1,第2次调用函数num()会输出1,不论调用多少次num()函数,输出都会为1。

2.静态变量的例子:

<?php
function num()
{
static $i = 1;
echo $i;
++$i;
}
echo num();
echo "<br />";
echo num();
?>

说明:第1次调用函数num()输出1,第2次调用函数num()会输出2,依次类推…

3.2 可变函数

可变函数:可变变量,它的实现是在一个变量前添加一个“$”符号,就变成了另外一个变量。 可变函数的实现就是在一个变量名后添加一对圆括号“()”,让其变成一个函数的形式,然后PHP就寻找与变量值同名的函数,并且尝试执行它。(可变函数就是将定义好的函数名赋值给一个变量,然后通过这个变量来调用。)

例如:

//变量函数的用法:
function demo(){
echo "天王盖地虎! ";
}
function demo1(){
echo "宝塔镇河妖! ";
}
$de='demo'; //将demo函数名赋给变量$de;
echo $de();//调用该变量名加();
$ee='demo1';//将demo1函数名赋给变量$ee;
echo $ee();

可变函数的实现就是在一个变量名后添加一对圆括号“()”,让其变成一个函数的形式,然后

PHP就寻找与变量值同名的函数,并且尝试执行它。

3.3 回调函数

回调函数(callback):指的就是具有callable类型的函数,一般用作参数的传递。如PHP内置函数call_user_func()可以接受用户自定义的回调函数作为参数。就是把函数作为参数传入进另一个函数中使用。

例如:

<?php
function qwe($name,$age){
echo "我叫$name 我$age 岁了 <br>";
}
call_user_func('qwe', "张三",'18');
call_user_func('qwe', "李四",'24');
?>

3.4 匿名函数

匿名函数:就是没有函数名称的函数,也称作闭包函数,经常用作回调函数参数的值。对于临时定义的函数,使用匿名函数无需考虑函数命名冲突的问题。

例如:

<?php
$sum = function($a, $b) { // 定义匿名函数
return $a + $b;
};
echo $sum(100, 200); // 输出结果:300
?>

匿名函数仍然是函数,可以传入参数,直接把赋数赋值给变量,调用变量即为调用函数。

匿名函数中使用外部的变量,需要通过use关键字实现。use关键字后圆括号“()” 中的内容即为要使用的外部变量列表,多个变量之间使用英文逗号“,”分隔即可。

例如:

<?php
$c = 100;
$sum = function($a, $b) use($c) {
return $a + $b + $c;
};
echo $sum(100, 200); // 输出结果:400
?>

除此之外,匿名函数还可以作为函数的参数传递,实现回调函数。

例如:

<?php
function calculate($a, $b, $func)//回调函数
{
return $func($a, $b);
}
echo calculate(100, 200, function($a, $b) { // 输出结果:300
return $a + $b;
});
echo calculate(100, 200, function($a, $b) { // 输出结果:20000
return $a * $b;
});
?>

四、PHP的内置函数

4.1 字符串函数

字符串函数是PHP用来操作字符串的内置函数,在实际开发中有着非常重要的作用。下面是一些常用的字符串函数及其功能说明:

1. strlen($string): 返回字符串的长度(字符数)。

例如:strlen("Hello") 返回 5,因为 "Hello" 包含 5 个字符。

2. strpos($haystack, $needle): 在字符串中查找指定子字符串的位置,并返回第一次出现的索引位置。

例如:strpos("Hello, world!", "world") 返回 7,因为 "world" 第一次出现在第 7 个位置。

3. strrpos($haystack, $needle): 与 strpos() 类似,但是从字符串的末尾开始查找指定子字符串的位置,并返回最后一次出现的索引位置。

例如:strrpos("Hello, world!", "o") 返回 8,因为 "o" 最后一次出现在第 8 个位置。

4. str_replace($search, $replace, $string): 在字符串中查找指定的子字符串,并将其替换为另一个字符串。

例如:str_replace("World", "Universe", "Hello, World!") 返回 "Hello, Universe!"。

5. substr($string, $start, $length): 返回字符串的子串,从指定的起始位置开始,并可选择指定长度。

例如:substr("Hello, world!", 7, 5) 返回 "world",因为从第 7 个位置开始的 5 个字符是 "world"。

6. explode($delimiter, $string): 将字符串根据指定的分隔符拆分为数组。

例如:explode(",", "apple,banana,orange") 返回 ["apple", "banana", "orange"]。

7. implode($glue, $array): 将数组中的元素连接成一个字符串,使用指定的粘合剂(分隔符)。

例如:implode(", ", ["apple", "banana", "orange"]) 返回 "apple, banana, orange"。

8. trim($string): 去除字符串两边的空格和其他特定字符。

例如:trim("  Hello  ") 返回 "Hello",因为两边的空格被去除了。

9. str_repeat($string, $times): 将字符串重复指定次数。

例如:str_repeat("Hello", 3) 返回 "HelloHelloHello"。

10. strcmp($str1, $str2): 比较两个字符串的大小。返回一个整数值,如果两个字符串相等则返回 0,如果第一个字符串小于第二个字符串则返回负数,如果第一个字符串大于第二个字符串则返回正数。

例如:strcmp("apple", "banana") 返回一个负数。

4.2 数学函数

为了方便开发人员处理程序中的数学运算,PHP内置了一系列的数学函数,用于获取最大值、最小值、生成随机数等常见的数学运算。下面是一些常用的PHP数学函数及其功能说明:

1. abs($number): 返回给定数的绝对值。

例如,abs(-5)返回5。

2. ceil($number): 向上取整,返回大于或等于给定数的最小整数。

例如,ceil(4.2)返回5。

3. floor($number): 向下取整,返回小于或等于给定数的最大整数。

例如,floor(4.8)返回4。

4. fmod($number, $divisor): 返回给定数除以除数的余数。

例如,fmod(7, 3) 返回1,因为7除以3的余数是1。

5. is_nan($number): 判断给定值是否为NaN(Not a Number)。如果给定的值不是数字,则返回true,否则返回false。

例如,is_nan(sqrt(-1)) 返回true,因为对负数的开方结果是NaN。

6. max($number1, $number2, ...): 返回给定数中的最大值。

例如,max(5, 8, 3)返回8。

7. min($number1, $number2, ...): 返回给定数中的最小值。

例如,min(5, 8, 3)返回3。

8. pi(): 返回圆周率 π 的近似值。

例如,pi()返回3.1415926535898。

9. pow($base, $exponent): 返回给定基数的指定次幂。

例如,pow(2, 3) 返回8,因为2的3次幂是8。

10. sqrt($number): 返回给定数的平方根。

例如,sqrt(16) 返回4,因为4的平方是16。

11. round($number, $precision): 对给定数进行四舍五入取整。可选择指定小数点精度。

例如,round(3.14159, 2) 返回3.14,保留两位小数。

12. rand($min, $max): 返回指定范围内的一个随机整数。

例如,rand(1, 10) 返回1到10之间的一个随机整数。

4.3 时间日期函数

在使用PHP开发Web应用程序时,经常会涉及日期和时间管理。 例如倒计时、用户登录时间、新闻发布时间、购买商品时下订单的时间等。 为此,PHP提供了内置的日期和时间处理函数,满足开发中的各种需求。下面是一些常用的PHP时间日期函数及其功能说明:

1. time() 函数返回当前的Unix时间戳,即从1970年1月1日起经过的秒数。它通常被用来获取程序的执行时间或生成时间戳。

2. date($format, $timestamp) 函数将给定的时间戳格式化为指定的日期字符串。format是日期格式化字符串,format是日期格式化字符串,timestamp是可选的时间戳,默认为当前时间。

例如,date('Y-m-d H:i:s') 将返回当前时间的年份、月份、日期、小时、分钟和秒数。

3. mktime($hour, $minute, $second, $month, $day, $year) 函数根据给定的小时、分钟、秒、月、日和年返回一个日期的Unix时间戳。它常用于构建特定的日期和时间。

例如,mktime(0, 0, 0, 1, 1, 2022) 返回2022年1月1日的时间戳。

4.strtotime($time, $now) 函数将日期时间字符串转换为Unix时间戳。time是要转换的字符串,time是要转换的字符串,now是可选的基准时间,默认为当前时间。它能够处理各种格式的日期时间字符串,例如"2022-01-01"、“next Monday”、"tomorrow"等。

5. microtime($get_as_float) 函数返回当前的Unix时间戳和微秒数。$get_as_float参数是可选的,如果设置为true,则返回浮点数形式的时间戳。这个函数通常用于测量代码的执行时间。


总结

在本篇博客中,我们深入探索了PHP函数的世界,体验了一段渐进式的编程之旅。我们从基础开始,了解了什么是PHP函数以及如何定义和调用它们。我们探讨了不同类型的函数,包括内置函数、自定义函数以及匿名函数。通过实际示例,我们学习了如何使用这些函数来处理数据、实现特定功能和构建可扩展的应用程序。

感谢您跟随我的渐进式编程之旅,希望这篇博客为您带来了有益的知识和启发。祝您在PHP函数的世界中探索出属于自己的奇妙旅程!

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

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

相关文章

使用bisect模块进行二分查找操作 bisect.bisect()

【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 使用bisect模块 进行二分查找操作 bisect.bisect() 选择题 请问bisect.bisect(c,2)的结果是&#xff1a; import bisect print("【执行】c [1,2,2,6,7]") c [1,2,2,6,7] print(c…

Linux性能优化--性能追踪3:系统级迟缓(prelink)

12.0 概述 本章包含的例子说明了如何用Linux性能工具寻找并修复影响整个系统而不是某个应用程序的性能问题。阅读本章后&#xff0c;你将能够&#xff1a; 追踪是哪一个进程导致了系统速度的降低。用strace调查一个不受CPU限制的进程的性能表现。用strace调查一个应用程序是如…

清除git历史敏感数据--bfg的应用

项目场景&#xff1a; 开源项目中的git历史中存在敏感 信息&#xff0c;如数据库地址&#xff0c;端口&#xff0c;密码&#xff0c;用户等 我们我们在主分支擦除密码&#xff0c;用户名等&#xff0c;git的历史记录里还是会有相关信息&#xff0c;并不能真正做到清除敏感信息…

前端自学需要把大量时间放在 HTML、CSS 吗?

前言 html和css其实不需要花费太多的时间&#xff0c;html暂且不说&#xff0c;css各类的属性太多了&#xff0c;平时如果只是简单做一些小网站根本不需要全部掌握&#xff0c;只需要掌握一些基础常用的即可&#xff0c;一般遇到不会的也可以直接查文档&#xff0c;就我个人来…

负载均衡、代理和动静分离的战略

一、Nginx简介 1.1 概述 Nginx (“engine x”) 是一个高性能的 HTTP 和 反向代理服务器,特点是占有内存少,并发能力强,能经受高负载的考验,有报告表明能支持高达 50,000 个并发连接数 。 1.2正向代理与反向代理 1.2.1正向代理 正向代理:如果把局域网外的 Internet 想象…

【数之道 06】神经网络模型中激活函数的选择

激活函数的选择 为什么使用激活函数激活函数的选择sigmoidtanhReLU(Rectified Linear Unit)Leaky ReLU&#xff08; ReLU 函数的变形体&#xff09;隐藏层的选择顺序 输出层的激活函数以业务要求为导向二分类问题多分类问题多标签问题线性回归问题 b站视频 为什么使用激活函数…

Linux内核8. Linux内核的经典调试方式

1 内核调试以及工具总结 内核总是那么捉摸不透, 内核也会犯错, 但是调试却不能像用户空间程序那样, 为此内核开发者为我们提供了一系列的工具和系统来支持内核的调试. 内核的调试, 其本质是内核空间与用户空间的数据交换, 内核开发者们提供了多样的形式来完成这一功能. 2 用户…

【一】Lambda表达式

1.Lambda表达式概述 ​ Lambda表达式是现代C在C 11和更高版本中的一个新的语法糖 &#xff0c;在C11、C14、C17和C20中Lambda表达的内容还在不断更新。 lambda表达式&#xff08;也称为lambda函数&#xff09;是在调用或作为函数参数传递的位置处定义匿名函数对象的便捷方法。…

BookStack 详解及 Docker-Compose 部署

BookStack 是一款用于创建文档和文档管理的开源平台。它提供了一个直观且功能丰富的界面&#xff0c;可用于组织和管理各种文档&#xff0c;包括文档编写、编辑和共享。本文将介绍 BookStack 的核心功能&#xff0c;并展示如何使用 Docker-Compose 快速部署 BookStack。 BookS…

Qt 窗口常用位置API函数 绘图原理 双缓冲机制 总结

一、Qt 窗口API函数基础知识 在Qt窗口编程中&#xff0c;常用的API函数有&#xff1a; QWidget类的API函数&#xff1a;包括setWindowTitle()、resize()、move()、show()、hide()、setFixedSize()、setWindowFlags()等。 QMainWindow类的API函数&#xff1a;包括setCentralWi…

竞赛选题 深度学习二维码识别

文章目录 0 前言2 二维码基础概念2.1 二维码介绍2.2 QRCode2.3 QRCode 特点 3 机器视觉二维码识别技术3.1 二维码的识别流程3.2 二维码定位3.3 常用的扫描方法 4 深度学习二维码识别4.1 部分关键代码 5 测试结果6 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天…

IDEA使用http client无法识别http-client.env.json的环境配置

http-client.env.json的配置 {"dev": {"baseUrl": "http://192.168.60.176:9160","accessToken": "eyJhbPNOQ"} }选择不到环境 问题原因&#xff1a; 安装了Alibaba Cloud Toolkit插件后&#xff0c;被Alibaba Cloud ROS …

vue3中使用百度地图

基本使用 在项目的index.html加入以下代码(记得替换成自己的key) <script type"text/javascript" src"https://api.map.baidu.com/api?v1.0&typewebgl&ak自己的key"></script>在组件中加入以下代码 <template><div id&qu…

CAN通信

通讯方式 UART&#xff1a;(Universal Asynchronous Receiver Transmitter&#xff1a;通用异步收发器/异步串行通信口)&#xff0c;是一种通用的串行数据总线&#xff0c;用于异步通信&#xff0c;支持全双工。它包括了RS232、RS499、RS423、RS422和RS485等接口标准规范和总线…

中文连续视觉语音识别挑战赛

视觉语音识别&#xff0c;也称唇语识别&#xff0c;是一项通过口唇动作来推断发音内容的技术。该技术在公共安全、助老助残、视频验真等领域具有重要应用。当前&#xff0c;唇语识别的研究方兴未艾&#xff0c;虽然在独立词、短语等识别上取得了长足进展&#xff0c;但在大词表…

FCKeditor编辑器漏洞

FCKeditor在网页上属于开发源代码的文字编辑器&#xff0c;FCK是作者的名字 搭建环境 查看版本http://192.168.246.20:89/_whatsnew.html 编辑器界面http://192.168.246.20:89/_samples/default.html 常用上传地址 FCKeditor/editor/filemanager/browser/default/browser.html…

华为云HECS服务器下docker可视化(portainer)

一、docker安装 华为云HECS安装docker-CSDN博客 二、portainer安装 portainer地址&#xff1a;Portainer: Docker and Kubernetes Management Platform 当前portainer分CE&#xff08;开源版&#xff09; 和 BE&#xff08;商业版&#xff09;&#xff0c;用CE即可 1 创建…

聚观早报 | 真我GT5 Pro即将登场;OPPO Find N3即将亮相

【聚观365】10月18日消息 真我GT5 Pro即将登场 OPPO Find N3即将亮相 小米澎湃OS正式版已完成封包 百川智能获3亿美元A1轮融资 理想MEGA实车曝光 真我GT5 Pro即将登场 8月28日&#xff0c;全新的真我GT5正式亮相&#xff0c;该机拥有安卓阵营最强悍的性能配置&#xff0c…

kali使用docker安装DVWA

上一篇文章我记录了如何使用kali安装DVWA&#xff0c;但是我是一个一个组件安装的&#xff0c;非常麻烦&#xff0c;比如数据库还需要配置&#xff0c;花费时间很多。昨天在逛github时&#xff0c;发现大佬的靶场都是通过docker打包好的&#xff0c;如果我也用docker安装DVWA&a…

[部署网站02]下载安装 unix PHP7.4 Swoole Loader扩展文件

1.下载地址&#xff1a; 链接&#xff1a;https://pan.baidu.com/s/13FA0lu_9uu6yhpHHA0P2yA?pwdhft7 提取码&#xff1a;hft7 2 、安装Swoole Loader 将刚才下载的Swoole Loader扩展文件&#xff08;swoole_loader74.so&#xff09;上传到当前PHP的扩展安装目录中&#x…