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

腾讯PHP经典面试题(附答案)

腾讯PHP经典面试题(附答案)

PHP开发工程师笔试试卷

姓名:PHP

一、PHP开发部分

1.合并两个数组有几种方式,试比较它们的异同

答:

1、array_merge()

2、’+’

3、array_merge_recursive

array_merge 简单的合并数组

array_merge_recursive 合并两个数组,如果数组中有完全一样的数据,将它们递归合并

array_combine 和 ‘+’ :合并两个数组,前者的值作为新数组的键

2.请写一个函数来检查用户提交的数据是否为整数(不区分数据类型,可以为二进制、八进制、十进制、十六进制数字)

答:其实主要还是is_int和 floor 这个方法

if(!is_numeric($jp_total)||strpos($jp_total,".")!==false){ 

    echo "不是整数"

}else

    echo "是整数"

}

3.PHP的strtolower()和strtoupper()函数在安装非中文系统的服务器下可能会导致将汉字转换为乱码,请写两个替代的函数实现兼容Unicode文字的字符串大小写转换

答:原因是:中文是由多字节组成的,而只有英文系统的单个英文字符只有一个字节,所以该系统把中文的每一个字节都做了strtolower()处理,改变后的中文字节拼接在一起就成了乱码(新生成的编码映射对应的字符可能就不是中文了)

手动解决:用str_split(string string,intstring,intsplit_length = 1)按每个字节切割,像中文能切割成三个字节。对识别到的字节若是英文字母则进行转换。

<?php 

function mystrtoupper($a){ 

    $b = str_split($a, 1); 

    $r = ''

    foreach($b as $v){ 

        $v = ord($v); 

        if($v >= 97 && $v<= 122){ 

            $v -= 32; 

        

        $r .= chr($v); 

    

    return $r

$a = 'a中你继续F@#$%^&*(BMDJFDoalsdkfjasl'

echo 'origin string:'.$a."\n"

echo 'result string:'

$r = mystrtoupper($a); 

var_dump($r);

4.PHP的is_writeable()函数存在Bug,无法准确判断一个目录/文件是否可写,请写一个函数来判断目录/文件是否绝对可写

答:其中bug存在两个方面,

1、在windowns中,当文件只有只读属性时,is_writeable()函数才返回false,当返回true时,该文件不一定是可写的。

如果是目录,在目录中新建文件并通过打开文件来判断;

如果是文件,可以通过打开文件(fopen),来测试文件是否可写。

2、在Unix中,当php配置文件中开启safe_mode时(safe_mode=on),is_writeable()同样不可用。

读取配置文件是否safe_mode是否开启。

/**

* Tests for file writability

*

* is_writable() returns TRUE on Windows servers when you really can't write to

* the file, based on the read-only attribute. is_writable() is also unreliable

* on Unix servers if safe_mode is on.

*

* @access   private

* @return   void

*/

if ( ! function_exists('is_really_writable'))

{

    function is_really_writable($file)

    {

    // If we're on a Unix server with safe_mode off we call is_writable

    if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE)

    {

        return is_writable($file);

    }

    // For windows servers and safe_mode "on" installations we'll actually

    // write a file then read it. Bah...

    if (is_dir($file))

    {

        $file = rtrim($file, '/').'/'.md5(mt_rand(1,100).mt_rand(1,100));

        if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE)

        {

            return FALSE;

        }

        fclose($fp);

        @chmod($file, DIR_WRITE_MODE);

        @unlink($file);

        return TRUE;

    } elseif ( ! is_file($file) OR ($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE) {

        return FALSE;

    }

    fclose($fp);

    return TRUE;

    }

}

5.PHP的chmod()函数存在Bug,无法保证设置成功,请写一个函数在指定路径下创建一个目录/文件并确保可以正确设置权限掩码

答:我也找不到答案

6.PHP处理上传文件信息数组中的文件类型$_FILES[‘type’]由客户端浏览器提供,有可能是黑客伪造的信息,请写一个函数来确保用户上传的图像文件类型真实可靠

答:用getimagesize来判断上传图片的类型比$_FILES函数的type更可靠

同一个文件,使用不同的浏览器php返回的type类型是不一样的,由浏览器提供type类型的话,

就有可能被黑客利用向服务器提交一个伪装撑图片后缀的可执行文件。

可以通过getimagesize()函数来判断上传的文件类型,如果是头像文件 会返回这样的一个数组

Array(

    [0] => 331

    [1] => 234

    [2] => 3

    [3] => width="331" height="234"

    [bits] => 8

    [mime] => image/png

);

如果通过getimagesize()函数返回的是这样的一个数组 说明上传的是头像文件。其中索引为2的表示类型

1 = GIF,2 = JPG,3 = PNG,4 = SWF,5 = PSD,6 = BMP,7 = TIFF(intel byte

order),8 = TIFF(motorola byte order),9 = JPC,10 = JP2,11 = JPX,12 =

JB2,13 = SWC,14 = IFF,15 = WBMP,16 = XBM,

你可以通过这个再去限制上传的头像类型

<?php

    $file=$_FILES['file'];

    if(!empty($file))

    {

        var_dump($file);

        var_dump(getimagesize($file["tmp_name"]));

    }  

?>

7.PHP通过对数据的URL编码来实现与Javascript的数据交互,但是对于部分特殊字符的编解码与Javascript的规则不尽相同,请具体说明这种差异,并针对UTF-8字符集的数据,写出PHP的编解码函数和Javascript的编解码函数,确保PHP编码数据可以被Javascript正确解码 、Javascript编码的数据可以被PHP正确解码

答:

<?php

 $str = '思源博客siyuantlw/tlw/sy/俺只是一个打酱油的';

 $str = iconv("GB2312",'UTF-8',$str);

 $str = urlencode($str);

?>

//js  decodeURIComponent   貌似对GB2312编码的格式不识别,必须转为utf-8才可以,然后,如果字符串中有空格的  就转为 +  号了

<html>

 <script>

  var ds = '<?php echo $str;?>';

  var dddd= decodeURIComponent (ds);

  alert(dddd);

 </script>

</html>

8.试阐述Memcache的key多节点分布的算法?当任一节点出现故障时PHP的Memcache客户端将如何处置?如何确保Memcache数据读写操作的原子性?

答:

原理:一致性hash

原子性

原子性会导致的问题:简单的说就是A,B都想操作key1,然后都在key1上增加自己的信息,就会有问题

memcached是原子的吗?

宏观

所有的被发送到memcached的单个命令是完全原子的。如果您针对同一份数据同时发送了一个set命令和一个get命令,它们不会影响对方。它们将被串行化、先后执行。即使在多线程模式,所有的命令都是原子的;命令序列不是原子的。如果您通过get命令获取了一个item,修改了它,然后想把它set回memcached,我们不保证这个item没有被其他进程(process,未必是操作系统中的进程)操作过。在并发的情况下,您也可能覆写了一个被其他进程set的item。

memcached 1.2.5以及更高版本,提供了gets和cas命令,它们可以解决上面的问题。如果您使用gets命令查询某个key的item,memcached会 给您返回该item当前值的唯一标识。如果您覆写了这个item并想把它写回到memcached中,您可以通过cas命令把那个唯一标识一起发送给 memcached。如果该item存放在memcached中的唯一标识与您提供的一致,您的写操作将会成功。如果另一个进程在这期间也修改了这个 item,那么该item存放在memcached中的唯一标识将会改变,您的写操作就会失败。

9.如何实现PHP的安全最大化?怎样避免SQL注入漏洞和XSS跨站脚本攻击漏洞?

答:基本原则:不对外界展示服务器或程序设计细节(屏蔽错误),不相信任何用户提交的数据(过滤用户提交)

1、1 屏蔽错误,将display_errors 设置为off

2、 过滤用户提交参数,这里需要注意的是不能仅仅通过浏览器端的验证,还需要经过服务器端的过滤

这里是需要注意最多的地方,因为所有用户提交的数据入口都在这里,这是过滤数据的第一步。

      1 考虑是否过滤select,insert,update,delete,drop,create等直接操作数据的命令语句

      2 使用addslashes 将所有特殊字符过滤

      3 打开magic_quotes_gpc,开启该参数数后自动将sql语句转换,将 ' 转换成  \'

3、 可以考虑设置统一入口,只允许用户通过指定的入口访问,不能访问未经许可的文件等内容

4、可以考虑对安全性要求高的文件进行来源验证,比如要想执行b.php必须先执行a.php,可以在b.php中判断来自a.php的referer,避免用户直接执行b.php

10.请设计一个数据结构可以实现无限级子菜单的树型菜单功能并提供菜单生成算法,用UML描述设计并写出相关PHP代码

答:还没找到答案

二、系统相关部分

1.请简述Linux、FreeBSD、Soalaris、Mac OS、Windows几种系统下进程与线程的内核实现方式、管理机制的异同

2.请简述Linux/BSD系统下进程间通讯的方式有哪些,并具体说明在PHP下如何实现

答:

管道(Pipe)及有名管道(namedpipe):管道可用于具有亲缘关系进程间的通信,有名管道克服了管道没有名字的限制,因此,除具有管道所具有的功能外,它还允许无亲缘关系进程间的通信;

信号(Signal):信号是比较复杂的通信方式,用于通知接受进程有某种事件发生,除了用于进程间通信外,进程还可以发送信号给进程本身;linux除了支持Unix早期信号语义函数sigal外,还支持语义符合Posix.1标准的信号函数sigaction(实际上,该函数是基于BSD的,BSD为了实现可靠信号机制,又能够统一对外接口,用sigaction函数重新实现了signal函数);

报文(Message)队列(消息队列):消息队列是消息的链接表,包括Posix消息队列systemV消息队列。有足够权限的进程可以向队列中添加消息,被赋予读权限的进程则可以读走队列中的消息。消息队列克服了信号承载信息量少,管道只能承载无格式字节流以及缓冲区大小受限等缺点。

共享内存:使得多个进程可以访问同一块内存空间,是最快的可用IPC形式。是针对其他通信机制运行效率较低而设计的。往往与其它通信机制,如信号量结合使用,来达到进程间的同步及互斥。

信号量(semaphore):主要作为进程间以及同一进程不同线程之间的同步手段。

套接口(Socket):更为一般的进程间通信机制,可用于不同机器之间的进程间通信。起初是由Unix系统的BSD分支开发出来的,但现在一般可以移植到其它类Unix系统上:Linux和SystemV的变种都支持套接字。

3.请简述Linux/BSD系统下系统的消息/事件异步通知机制有几种,并加以比较

4.简单比较TCP/UDP协议的异同,对于PHP的Socket扩展与Stream扩展,试比较两者基于TCP/UDP协议的SOCKET编程差异?

5.为什么会出现僵死进程(孤儿进程)?怎样查看僵死进程?如何解决僵死进程问题?

答:僵尸进程:一个进程使用fork创建子进程,如果子进程退出,而父进程并没有调用wait或waitpid获取子进程的状态信息,那么子进程的进程描述符仍然保存在系统中。这种进程称之为僵死进程。

查看:使用ps aux

删除:ps aux | grep -e ‘^[Zz]’ | awk ‘{print $2}’ | xargs kill -9

6.对于System-V消息队列,如何解决系统本身对于消息队列条数、总容量(字节数)的限制?如何设置消息的优先级别?请比较阻塞模式和非阻塞模式的异同,并说明如何避免非阻塞模式下的消息队列堵塞?

7.请描述Apache 2.x版本的MPM(Multi-Processing Module)机制,并具体说明在不同的MPM机制下如何支持PHP?

答:常用的应该就只有3个:worker|prefork|perchild

prefork:在功能上就是使用Apache的运行方式,一个父进程,然后根据设置以及连接情况生成相应的子进程数。这种模式可靠性和健壮性都是最好的。但是在性能上,开销过大。达不到我们这些“吸血鬼”的要求了^_^。如果连接数过多的话,会导致我们无法远程登陆,一定要等到连接数下降后才能连接,这也是最让我头痛的事情。

worker:混合线程/进程的MPM。一个父进程,后面是带有线程的子进程。每个子进程的线程数是固定且相同的。这是最“平庸”的一个模式,但也是使用人最多的一种模式。因为它性能等各方面比较均衡。性能上要比prefork好一些,只是牺牲了一点点的健壮性和可靠性而已。一般推荐使用这个选项。

perchild:也是混合线程/进程的MPM。当启动perchild MPM时,它会建立指定数量的子进程,且每个子进程都具有指定数量的线程,如负载增加了,那它不会建立新的进程(子进程是固定的),只是在子进程下建立新的线程。它还有一个特点就是可以为每一个子进程配置不同的用户和组。也可以为每个虚拟主机指定一个子进程。这种模式性能是最佳的,但是可靠性和健壮性就相对是最差的。各取所需,我个人觉得这种模式也不错,如果你不用第三方的模块的话^_^。

8.请简述PHP在Apache下的几种运行方式并加以比较?如何让PHP在Linux+Apache下以Fast CGI方式运行?

答:php在apache有3中运行方式:CGI模式、FastCGI模式、Apache 模块DLL。

比较:

Cgi模式和模块dll加载方式比较:

Cgi模式下,apache调用外部执行器php.exe执行php代码,并将解释后生成的html代码和原html整合,再传递给apache服务器,其在执行时每次都需要重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构,运行速度非常慢,但因为是外部加载执行器,php代码执行出错不会导致apache崩溃。

在模块化(DLL)中,PHP是与Web服务器一起启动并运行的。所以从某种角度上来说,以apache模块方式安装的 PHP4有着比CGI模式更好的安全性以及更好的执行效率和速度。

Cgi和fastcgi模式比较:

Fastcig是cgi的升级版,Cgi和fastcgi工作模式大抵相同,但fastcgi模式中fastcgi的进程管理器可用来管理cgi解释器,该管理器在cgi解释器完成请求后,会处于挂起状态,用以等待接下来的请求,因为向比较cgi每次都需要重新解析php.ini、重新载入全部dll扩展并重初始化全部数据结构,fastcig模式明显要快很多。

9. 请写出让PHP能够在命令行下以脚本方式执行时安装PHP所必须指定的configure参数,并说明如何在命令行下运行PHP脚本(写出两种方式)同时向PHP脚本传递参数?

答:由于 –enable-cli 和 –enable-cgi 同时默认有效,因此,不必再配置行中加上 –enable-cli 来使得 CLI 在 make install 过程中被拷贝到 {PREFIX}/bin/php

php -f “index.php”

php -r “print_r(get_defined_constants());”

10.请简述PHP 5.2的内存池及其内存管理机制、垃圾回收机制

内存管理机制

试题二:

1、请列举你能想到的UNIX信号,并说明信号用途。

答:

Unix信号量也可以在文件/usr/include/sys/signal.h中查看

SIGHUP 进程由於控制终端死去或者控制终端发出起命令

SIGINT 键盘中断所产生的信号

SIGQUIT 键盘终止

2、请列举、你能想到的所有的字符串查找算法,并加注释简单说明。

答:

1 顺序查找

2 二分查找

3 分块查找

4 哈希表查找

3、有一个IP地址(192.168.0.1),请写出其32位无符号整数形式。

答:此题是将十进制转换成二进制 采用取余法即可很简单 答案是:11000000.10101000.00000000.00000001 千万不能只记答案哦

4、写出、你能想到的所有HTTP返回状态值,并说明用途(比如:返回404表示找不到页面)

答:

200 (成功) 服务器已成功处理了请求。 通常,这表示服务器提供了请求的网页。

301 (永久移动) 请求的网页已永久移动到新位置。 服务器返回此响应(对 GET 或 HEAD 请求的响应)时,会自动将请求者转到新位置。

302 (临时移动) 服务器目前从不同位置的网页响应请求,但请求者应继续使用原有位置来进行以后的请求。

401 (未授权) 请求要求身份验证。 对于需要登录的网页,服务器可能返回此响应。

403 (禁止) 服务器拒绝请求。

404 (未找到) 服务器找不到请求的网页。

500 (服务器内部错误) 服务器遇到错误,无法完成请求。

501 (尚未实施) 服务器不具备完成请求的功能。 例如,服务器无法识别请求方法时可能会返回此代码。

502 (错误网关) 服务器作为网关或代理,从上游服务器收到无效响应。

503 (服务不可用) 服务器目前无法使用(由于超载或停机维护)。 通常,这只是暂时状态。

504 (网关超时) 服务器作为网关或代理,但是没有及时从上游服务器收到请求。

505 (HTTP 版本不受支持) 服务器不支持请求中所用的 HTTP 协议版本。

基础任务-选作(会得到额外分数):

1、画几个你最熟悉的SERVER端模型出来(格式不重要,尽量将图画清楚,说明思路即可)

进阶任务:

1、PHP的垃圾收集机制是怎样的?

说明:

1)如果,你熟悉PHP源码,那么请从源码入手,回答些问题,会获得额外加分

2)如果,你不熟悉PHP源码,那么尽你所能,多写点东西,包括利用自己的编程直觉得到的信息,都可以。

3)对,则有分,错误不扣,不写无分。

答:PHP可以自动进行内存管理,清除不再需要的对象。PHP使用了引用计数(referencecounting)这种单纯的垃圾回收(garbagecollection)机制。每个对象都内含一个引用计数器,每个reference连接到对象,计数器加1。当reference离开生存空间或被设为NULL,计数器减1。当某个对象的引用计数器为零时,PHP知道你将不再需要使用这个对象,释放其所占的内存空间。

2、请写出HTTP头,并符合以下要求:

1)这是一个post请求

2)目标:http://www.example.com:8080/test

3)POST变量:

username: test

pwd: test2

intro: Hello world!

4)包含以下COOKIE信息:

cur_query: you&me

说明:

1)如果,你记不得某个HTTP协议中的指令字了,那么,无奈这举是用“汉字”代替。

2)如果,你能记住更多的HTTP协议指令字,那么多写几句,总是没坏处,对吧?

3)最关键的,只需要画出正确的“轮廓”(还记得httpwatch等工具打印出来的头部吗?那就是“轮廓”的含义),也会有分数,但如果,连“轮廓”都写错了,那么就很遗憾了。

答:

Accept: text/html 可以接受的数据类型

Accept-Encoding: gzip 接受的压缩类型

Accept-Language: zh-CN 接受语言

Cache-Control: no-cache 是否有缓存

Connection : keep-alive 是否保持链接

Host:http://www.example.com:8080/test

Cookie:intro=Hello world!

Content-Disposition: form-data; username=”test”&pwd=”test2”&intro=”hello world!”

User-Agent: 浏览器信息

Referer: 前一个页面地址

设计任务:

1、最近总有人骚扰我们的投票模块,需要你来设计一个投票限制的东东

要求如下:

1)要求每个QQ号码(假设此QQ号码在UNIT32内可以表示)10分钟这内只能投5票。

2)我们的用户很踊跃,平均每天要有2000万人左右通过此程序投票。

说明:

1)无需写代码,只需要图跟文字即可。

2)对于关键逻辑,请用图加代码表示出来,这也是对你文字表达能力的一个考验。

3)对你能想到的所有的边界条件列出来,这是对你逻辑思维全面与敏捷性的考验。

4)存储部分,尽你所能吧。如果,你需要一个自己设计的存储层,那么把这个存储层的实现,用文字+图片方式描述清楚,要是设计合理,你会获得华丽的奖分。

答:找了好久终于找到个大神的回答:打字太累了 就截图了

5f3a61c426fd39f02d1ca0994ff2315.jpg

aa6fbb23bdba8d66370791fd0324659.jpg

a896a13d206cb53d4af94e30a4d6b83.jpg

编程任务:

1、我们碰到了大麻烦,一个新来的传教士惹恼了上帝,上帝很愤怒,要求我们把圣经(bbe.txt)背熟,直至他说哪个单词,我们就要飞快的回答出这个单词在第几行第几个单词位置。听说你是个优秀的程序员,那么髟助我们完成这个不可能的任务吧。

要求如下:

1)/myworks/example/bbe.txt,98版本英文圣经一本

2)输入部分要求如下:php ./example.php [单词]

3)输出部分如下:[单词] 1,2 2,4 5,6 表示:此单词在1行2列(第二个单词),2行4列…

说明:

1)此文本4MB之巨…

2)单词的含义:由英文字母(大小写),数字(0-9)组成的串

3)提供给你的机器OS为ubuntu 9.10,内存只有1G,而且,很不幸的,其中700M用来做了别的

4)上机考试不允许上网,但我装了man文档以及读取CHM以及PDF的阅读器,在电脑的桌面的CHM文件夹中,有相应的PHP参考手册

5)算法复杂度要求不能大于O(N^2)(就是N的平方)

6)什么?PHP低效且用起来不顺手,好的,你可以用别的语言来实现。但注意:提供给你的机器上只有python 2.4/perl 5.8/gcc[g++] 4.1

答:两份答案感觉还可以

bbe.txt文件咱们没有 想像成是 空格 隔开的算了

hello123 hello tim jason

woaini1 tianjianxiong333 hh aaa

/* 此文件用于根据bbe.txt文件对所有单词创建索引,相当于一次预处理 */  

ini_set('display_errors','on'); 

set_time_limit(0); 

$file = file($src); // 数组 

foreach($file as $i => &$ls){ 

    $a = explode(" ",$ls); 

    $len = count($a); 

    if ($len > 0){ 

        for($j=0;$i<$len;$j++){ 

            $data = "此单词".$a[$j]."在".($i+1)."行,".($j+1)."列"

            $key = md5(trim(strtolower($a[$j]))); 

            file_put_contents($key,$data); 

        

    

    //echo $i.". > ".$ls.'<br />'; 

}

example.php:

#!/usr/local/bin/php -q  

<?php 

set_time_limit(0);  

$getkey=empty($argv[1]) ? $_REQUEST['k'] : $argv[1]; 

$arr = explode(",",$getkey);   

$len = count($arr); 

if($len > 0){ 

    for($i=0;$i<$len;$i++){ 

        echo getKey($arr[$i])."\n"

    

functuion getKey($key){ 

    $str = "没有找到此单词[".$key."]"

    if($key){ 

        $fc = md5($key); 

        $str = file_get_contents($fc)); 

    

    return $str

?>

别人的方法:

1、使用ascii码,判断字符所在范围

2、只要扫描一遍字符即可,复杂度为O(N)

3、利用了php string{$i} 的特性,取字符串内任一字符

4、todo:改为fgetc版本,可以完全不需要使用以上php特性

5、字符串匹配算法:http://wendell07.blog.hexun.com/14112681_d.html,目前看来最快的方法:Sunday,由于本题是单词匹配,问题更简单,只要找到头尾……

$word =$argv[1]; 

$lines = 0; 

$handle = @fopen("bbe.txt","r"); 

if ($handle) { 

    while (!feof($handle)) { 

        $line =fgets($handle, 4096); 

        $local = local_word($line,$word); 

        $lines++; 

        if( !empty($local) ){ 

            echo "$lines,".implode(' ',$local)."\n"

        

    

    fclose($handle); 

function local_word($line,$word){ 

    $local =array(); 

    $local_length = 1; 

    $word_length =strlen($word); 

    for($i = 0; ($char =$line{$i} ) !=='';$i++ ){ 

        // 单词最后一个字符必定不是符号,且必有一个符号结尾,此计为一个新词 

        if( !is_symbel($line{$i-1 } ) && is_symbel($char) ){ 

            $local_length++; 

        }     

        if($char ===$word[0] &&// 如果第一个字符相同 

            is_symbel($line{$i-1 } ) &&// 且为单词开始 

            is_symbel($line{$i+$word_length })// 单词结尾应该为符号 

        ){ 

            // 进入验证单词模式,一个一个字符比对 

            for($j = 1; ($w_char =$word{$j}) !=='';$j++ ){ 

                // 遇到单词字符不匹配 

                if($w_char !=$line{$i+$j } ){ 

                    $i +=$j

                    break

                

                // 如果单词比对完全正确 

                if($j == ($word_length-1) ){ 

                    //echo "$line_length, $word_length\n"; 

                    $local[] =$local_length

                

            

        

    

    return $local

function is_symbel($char){ 

    $asc = ord($char); 

    return !( (48 <=$asc &&$asc <= 57) || 

              (65 <=$asc &&$asc <= 90) || 

              (97 <=$asc &&$asc <= 122) ); 

}

相关文章:

腾讯PHP经典面试题(附答案)

腾讯PHP经典面试题&#xff08;附答案&#xff09; PHP开发工程师笔试试卷 姓名:PHP 一、PHP开发部分 1&#xff0e;合并两个数组有几种方式&#xff0c;试比较它们的异同 答&#xff1a; 1、array_merge() 2、’’ 3、array_merge_recursive array_merge 简单的合并数…...

LightGBM分类算法在医疗数据挖掘中的深度探索与应用创新(上)

一、引言 1.1 医疗数据挖掘的重要性与挑战 在当今数字化医疗时代,医疗数据呈爆炸式增长,这些数据蕴含着丰富的信息,对医疗决策具有极为重要的意义。通过对医疗数据的深入挖掘,可以发现潜在的疾病模式、治疗效果关联以及患者的健康风险因素,从而为精准医疗、个性化治疗方…...

【PCIe 总线及设备入门学习专栏 1.1 -- PCIe 基础知识 lane和link介绍】

文章目录 OverivewLane 和 LinkRC 和 RPPCIe controllerPCIE ControllerPHY模块 Inbound 和 OutboundPCIe transaction modelPIODMAP2P Overivew PCIe&#xff0c;即PCI-Express总线&#xff08;Peripheral Component Interconnect Express&#xff09;&#xff0c;是一种高速…...

PCDN 适合哪些人群?

家用宽带用户:对于家中有宽带&#xff0c;且宽带闲置时间较多的用户来说&#xff0c;PCDN是一个非常好的赚钱方式。只要你有足够的带宽和一台稳定的设备&#xff0c;就可以轻松参与。 小型网络运营者:如果你是小型网络运营者&#xff0c;拥有大量的闲置带宽资源PCDN 可以帮助你…...

C++之红黑树模拟实现

目录 红黑树的概念 红黑树的性质 红黑树的查找效率 红黑树的实现 红黑树的定义 红黑树节点的插入 红黑树的平衡调整 判断红黑树是否平衡 红黑树整体代码 测试代码 上期我们学习了AVL树的模拟实现&#xff0c;在此基础上&#xff0c;我们本期将学习另一个数据结构-…...

一分钟快速解读LEED绿色建筑认证

一分钟快速解读LEED绿色建筑认证——引领未来建筑绿色革命的风向标 LEED&#xff0c;全称为“Leadership in Energy and Environmental Design”&#xff0c;是美国绿色建筑委员会&#xff08;USGBC&#xff09;开发并推广的一套国际公认的绿色建筑评估体系。它如同一座灯塔&am…...

C# 语法糖集锦

文章目录 1、自动属性(Auto - Properties)2、对象和集合初始化器(Object and Collection Initializers)3、匿名类型(Anonymous Types)4、扩展方法(Extension Methods)5、Lambda 表达式(Lambda Expressions)6、空合并运算符(??)和空条件运算符(?.)7、隐式类型数…...

centos制作离线安装包

目录 1.yumdownloader与repotrack怎么选择&#xff1f; yumdownloader --resolve repotrack 总结 2.环境准备 3.安装 1.yumdownloader与repotrack怎么选择&#xff1f; yumdownloader --resolve 和 repotrack 都是与 YUM&#xff08;Yellowdog Updater Modified&#xf…...

HTML5 学习资源

HTML5 学习资源 学习HTML5的资源丰富多样&#xff0c;以下是一些推荐的在线教程、书籍和社区论坛&#xff0c;帮助你更好地掌握HTML5。 11.1 在线教程和课程 MDN Web Docs&#xff1a; MDN HTML 教程提供详细的HTML5文档和实例&#xff0c;适合各个水平的开发者。 W3Schools…...

大模型(LLM)提示工程(Prompt Engineering)初识

大模型提示工程&#xff08;Prompt Engineering&#xff09;是指设计和优化给定任务的输入提示&#xff0c;以便从大型语言模型&#xff08;如GPT-4、GPT-3等&#xff09;中获得最佳输出。其核心目标是通过合理设计输入内容&#xff08;提示词或提示结构&#xff09;&#xff0…...

uni-app 统一请求处理 请求拦截器 响应拦截器 请求封装

封装API接口 import {http} from ../utils/request.js export function login(code){return http({url:/wx/getSession,method: GET,data:{code}}) }调用接口 import {login,test,phoneMessage,updateAvatar} from ../../api/user.js function userLogin(){ login(code.value…...

web 渗透学习指南——初学者防入狱篇

目录 一、学习方向和基础知识二、知识点详细总结三、学习流程和典型案例 案例1&#xff1a;SQL注入漏洞检测与利用案例2&#xff1a;XSS攻击检测与利用案例3&#xff1a;文件上传漏洞利用案例4&#xff1a;CSRF攻击实现 四、常用工具推荐和使用方法五、初学者实用学习资源六、渗…...

卷积神经网络入门指南:从原理到实践

目录 1 CNN的发展历史 2 CNN的基本原理 3 CNN核心组件 3.1 卷积操作基础 3.2 卷积层详解 3.3 高级卷积操作 3.3.1 分组卷积&#xff08;Group Convolution&#xff09; 3.3.2 深度可分离卷积&#xff08;Depthwise Separable Convolution&#xff09;&#xff1a; 3.3 池…...

vscode添加全局宏定义

利用vscode编辑代码时&#xff0c;设置了禁用非活动区域着色后&#xff0c;在一些编译脚本中配置的宏又识别不了 遇到#ifdef包住的代码就会变暗色&#xff0c;想查看代码不是很方便。如下图&#xff1a; 一 解决&#xff1a; 在vscode中添加全局宏定义。 二 步骤&#xff1a…...

Mysql InnoDB存储引擎中聚簇索引和非聚簇索引的区别

最核心的区别还是从需求角度来看比较好&#xff1a; 1.创建索引时 在创建表时&#xff0c;InnoDB存储引擎会根据不同情况&#xff0c;选择不同的列作为索引 &#xff08;1&#xff09;有主键&#xff0c;通过主键作为聚簇索引的索引键&#xff08;key) &#xff08;2&#xf…...

使用vcpkg安装opencv>=4.9后#include<opencv2/opencv.hpp>#include<opencv2/core.hpp>无效

使用vcpkg安装opencv>4.9后#include<opencv2/opencv.hpp>#include<opencv2/core.hpp>无效\无法查找或打开 至少从2024年开始&#xff0c;发布的vcpkg默认安装的opencv版本都是4.x版。4.8版本及以前&#xff0c;vcpkg编译后的opencv头文件目录是*/vcpkg/x64-win…...

opencv sdk for java中提示无stiching模块接口的问题

1、问题介绍 安卓项目中有新的需求&#xff0c;在 jni 中增加 stiching_detail.cpp 中全景拼接的实现。 但是在编译时&#xff0c;出现大量报错&#xff0c;如下截图所示 实际上&#xff0c;其他opencv的接口函数 例如 core dnn等都能正常使用&#xff0c;直觉上初步怀疑 ope…...

大恒相机开发(2)—Python软触发调用采集图像

大恒相机开发&#xff08;2&#xff09;—Python软触发调用采集图像 完整代码详细解读和功能说明扩展学习 这段代码是一个Python程序&#xff0c;用于从大恒相机采集图像&#xff0c;通过软件触发来采集图像。 完整代码 咱们直接上python的完整代码&#xff1a; # version:…...

gitlab克隆仓库报错fatal: unable to access ‘仓库地址xxxxxxxx‘

首次克隆仓库&#xff0c;失效了&#xff0c;上网查方法&#xff0c;都说是网络代理的问题&#xff0c;各种清理网络代理后都无效&#xff0c;去问同事&#xff1a; 先前都是直接复制的网页url当做远端url&#xff0c;或者点击按钮‘使用http克隆’ 这次对于我来说有效的远端u…...

代码随想录day27 贪心1

题目&#xff1a;455.分发饼干 376.摆动序列 53.最大子序和 需要重做&#xff1a;全部 贪心算法其实就是没有什么规律可言&#xff0c;所以大家了解贪心算法 就了解它没有规律的本质就够了。 不用花心思去研究其规律&#xff0c; 没有思路就立刻看题解。 理论基础 贪心的…...

Hive 部署

1 下载并安装 1.1 Hadoop安装 参考另一篇博客&#xff1a;Hadoop 部署 1.2 安装包下载 可通过下面网站下载&#xff1a; 官网&#xff1a;https://dlcdn.apache.org/hive/。清华源&#xff1a;https://mirrors.tuna.tsinghua.edu.cn/apache/hive/。 比如下载apache-hive-4…...

SDK 指南

在前端开发中&#xff0c;SDK&#xff08;Software Development Kit&#xff0c;软件开发工具包&#xff09;是一个用于帮助开发者在特定平台、框架或技术栈中实现某些功能的工具集。 1. SDK 是什么&#xff1f; SDK 是一种开发工具包&#xff0c;它提供了开发人员实现某些功…...

unity Default constructor not found for type 的问题

文章目录 前言一、怎么解决&#xff1f;总结 前言 突然有一次打包PC的包出来&#xff0c;JSON就无法正常获取&#xff0c;后来找到原因&#xff1a; 应该是设置渲染等级相关的东西&#xff0c;不小心把剥离等级设置套高了。 一般情况不会出现&#xff0c;向我这种老爱unity 编…...

富文本编辑器实现表单非空校验

首先尝试使用form的rules规则去验证&#xff0c;发现未生效&#xff1b; <el-form ref"form" :disabled"readonly" :model"form" :rules"rules" label-width"120px"><el-form-item label"内容" prop&quo…...

使用uniapp开发微信小程序-框架搭建

最近要开发一个小程序&#xff0c;为了降低学习成本&#xff0c;最后还是选择使用uniapp来开发&#xff0c;但是由于电脑性能不行&#xff0c;实在不想多跑一个应用程序&#xff0c;就简单搭建了一个可以用vscode跑的uniapp项目。 项目整体技术栈&#xff1a;vue3 pinia type…...

华为浏览器(HuaweiBrowser),简约高效上网更轻松

华为浏览器是一款由华为公司自主研发的网页浏览工具&#xff0c;凭借其独特的设计理念和优质的用户体验&#xff0c;正在吸引越来越多的用户关注。这款基于Chromium技术打造的浏览器不仅继承了Chrome的高性能特质&#xff0c;更融入了华为自身的创新元素&#xff0c;为用户打造…...

SQLite

文章目录 1、什么是信息?2、 数据库模型3、sqLite 数据库4、 SQL 语句基础5、对数据库文件 SQL 语句:6、创建表:create 语句7、创建表:create 语句(设置主键)8、查看表: .table9、修改表: alter语句10、删除表:drop table 语句11、插入新行:insert into 语句(全部赋值)12、插入…...

uniapp下拉选择组件

目录 背景 实现思路 代码实现 配置项 使用 尾巴 背景 最近遇到一个这样的需求&#xff0c;在输入框中输入关键字&#xff0c;通过接口查询到结果之后&#xff0c;以下拉框列表形式展现供用户选择。查询了下uni-app官网和项目中使用的uv-ui库&#xff0c;没找到符合条件的…...

解决 vue3 中 echarts图表在el-dialog中显示问题

原因&#xff1a; 第一次点开不显示图表&#xff0c;第二次点开虽然显示图表&#xff0c;但是图表挤在一起&#xff0c;页面检查发现宽高只有100px,但是明明已经设置样式宽高100% 这可能是由于 el-dialog 还没有完全渲染完成&#xff0c;而你的 echarts 组件已经开始尝试渲染图…...

WebSSH:基于Go实现的高效Web SSH客户端指南

WebSSH&#xff1a;基于Go实现的高效Web SSH客户端指南 WebSSH 功能强大&#xff0c;Go 实现的一个WebSSH&#xff0c;支持文件上传下载 [这里是图片001] 项目地址: https://gitcode.com/gh_mirrors/webssh1/WebSSH 项目基础介绍&#xff1a; WebSSH是一个由Golang编写的高效…...

Hive其四,Hive的数据导出,案例展示,表类型介绍

目录 一、Hive的数据导出 1&#xff09;导出数据到本地目录 2&#xff09;导出到hdfs的目录下 3&#xff09;直接将结果导出到本地文件中 二、一个案例 三、表类型 1、表类型介绍 2、内部表和外部表转换 3、两种表的区别 4、练习 一、Hive的数据导出 数据导出的分类&…...

shell脚本定义特殊字符导致执行mysql文件错误的问题

记得有一次版本发布过程中有提供一个sh脚本用于一键执行sql文件&#xff0c;遇到一个shell脚本定义特殊字符的问题&#xff0c;sh脚本的内容类似以下内容&#xff1a; # 数据库ip地址 ip"127.0.0.1" # 数据库密码 cmdbcmdb!#$! smsm!#$!# 执行脚本文件&#xff08;参…...

【从零开始入门unity游戏开发之——C#篇29】C#泛型(T)和 泛型约束

文章目录 一、泛型1、泛型是什么2、泛型分类2.1. **泛型类和泛型接口**2.2. **泛型方法** 3、泛型类和接口3.1 泛型类示例&#xff1a;3.2 泛型接口示例&#xff1a;3.3 泛型类接受多个类型参数&#xff1a; 4、泛型方法4.1. **普通类中的泛型方法**4.2. **泛型类中的泛型方法*…...

一个从oracle使用spool导出数据到kadb的脚本

1. dump_data.sh调用sql_dump.sh导出数据 2. load_data.sh将导出的数据加载至KADB 1. dump_data.sh #!/bin/bash begin_time$(date %Y%m%d -d -1 day) end_time$(date %Y%m%d) echo "数据导出日期:"$begin_time echo "数据导出日期:"$begin_time >>…...

两道数组有关的OJ练习题

系列文章目录 &#x1f388; &#x1f388; 我的CSDN主页:OTWOL的主页&#xff0c;欢迎&#xff01;&#xff01;&#xff01;&#x1f44b;&#x1f3fc;&#x1f44b;&#x1f3fc; &#x1f389;&#x1f389;我的C语言初阶合集&#xff1a;C语言初阶合集&#xff0c;希望能…...

仿闲鱼的二手交易小程序软件开发闲置物品回收平台系统源码

市场前景 闲置物品交易软件的市场前景广阔&#xff0c;主要基于以下几个方面的因素&#xff1a; 环保意识提升&#xff1a;随着人们环保意识的增强&#xff0c;越来越多的人开始关注资源的循环利用&#xff0c;闲置物品交易因此受到了广泛的关注。消费升级与时尚节奏加快&…...

uni-app使用组件button遇到的问题

在HBuilder X工具中新建一个空白项目&#xff0c; 1、新建一个about页 然后在pages.json文件里加上路由 2、然后看下导航的方法&#xff0c;发现找不到navigateTo方法 参考&#xff1a;button | uni-app官网 第3行和第4行的代码倒是没问题的&#xff0c;第5行的代码有问题执行…...

halcon单相机+机器人*眼在手外标定心得

目的 得到相机坐标系下的点与机器人底座base的转换关系&#xff0c;camera_in_base 两个不确定的定量 1&#xff0c;相机与机器人底座base之间的相对位置是固定的&#xff0c;既camera_in_base 2&#xff0c;机械手末端与标定物 tool_in_obj是固定的 辅助确定量 工作台与相…...

为什么在多数据源的情况下,单数据源的自动配置类会失效?

在 Spring Boot 中&#xff0c;DataSourceAutoConfiguration 是单数据源情况下的默认自动配置类。当引入多数据源方案&#xff08;例如 dynamic-datasource-spring-boot-starter&#xff09;后&#xff0c;单数据源的自动配置机制会失效&#xff0c;原因主要在于多数据源自动配…...

Y3编辑器教程8:资源管理器与存档、防作弊设置

文章目录 一、资源管理器简介1.1 界面介绍1.2 资源商店1.3 AI专区1.3.1 AI文生图1.3.2 AI图生图1.3.3 立绘头像 二、导入导出2.1 文件格式2.2 模型导入2.2.1 模型制作后导出2.2.2 模型文件导入Y3编辑器2.2.3 Y3编辑器角色、装饰物模型要求 2.3 纹理导入2.4 材质贴图2.4.1 材质支…...

域名劫持污染可以拦截吗?

在当今数字化的时代&#xff0c;互联网已经成为人们生活、工作和学习不可或缺的一部分。然而&#xff0c;网络世界并非一片净土&#xff0c;域名劫持污染这一威胁如同潜藏在暗处的 “幽灵”&#xff0c;时刻困扰着网络的安全与稳定&#xff0c;也引发了人们对于其是否可以被有效…...

解决“SVN无法上传或下载*.so、*.a等二进制文件“问题

今天&#xff0c;在使用Subversion提交代码到服务器时&#xff0c;发现无法提交*.a、*.so等二进制文件&#xff0c;右击这些文件&#xff0c;发现其属性为ignores。     问题原因&#xff1a;SVN的配置文件里&#xff0c;屏蔽了*.a、*.so文件的上传与下载&#xff0c;并把这些…...

2024年河北省职业院校技能大赛云计算应用赛项赛题第2套(私有云)

#需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包及镜像&#xff09;或有问题的&#xff0c;可私聊博主&#xff01;&#xff01;&#xff01; #需要资源&#xff08;软件包…...

登山第十六梯:深度恢复——解决机器人近视问题

文章目录 一 摘要 二 资源 三 内容 一 摘要 深度感知是基于 3D 视觉的机器人技术的一个重要问题。然而&#xff0c;现实世界的主动立体或 ToF 深度相机经常会产生嘈杂且深度不完整&#xff0c;从而成为机器人性能的瓶颈。在这项工作中&#xff0c;提出了 一个基于学习的立体…...

【自动驾驶】3 激光雷达③

5 激光雷达点云检测模型 &#x1f98b;&#x1f98b;&#x1f98b;CenterPoint是Anchor‐Free的3D物体检测器&#xff0c;以点云作为输入&#xff0c;将三维物体在Bird‐View下的中心点作为关键点&#xff0c;基于关键点检测的方式回归物体的尺寸、方向和速度。相比于Anchor‐…...

新手福音:有哪些比Zotero更友好的文献管理软件?

别找了&#xff0c;3个被夸上天的论文阅读神器&#xff0c;我都帮你测评好了&#xff0c;直接抄我作业&#xff01;&#xff01; Scholaread、Zotero和EndNote&#xff0c;这些工具在复杂的学术探索中给我点亮了一盏灯&#xff0c;那感觉棒极了&#xff01; 虽然每个工具都不…...

消费导刊杂志社消费导刊杂志消费导刊编辑部2024年第41期目录

征稿启事 封2 轻工艺术 浅谈青瓷创作中的艺术审美 周水淼1-4 浅谈木雕艺术在红木家具创作中的应用 蒋宝良5-8 浅谈对唐卡艺术高技能人才培养的必要性 夏吾他9-12 龙泉宝剑锻造技艺 叶明13-16 传承吸纳,创造吐新——论越窑青瓷新时代的传承和创新路径 盛海尧17-20 浅析龙泉哥窑艺…...

Datawhale-AI活动2024.12.24

目录 一、番茄时钟&#xff08;1&#xff09;输入Prompt&#xff08;2&#xff09;创建 HTML 文件解析1&#xff1a;HTML结构解析2&#xff1a;计时器内容解析3&#xff1a;按钮区域解析4&#xff1a;脚本引用 &#xff08;3&#xff09;使用JavaScript实现时钟功能解析1&#…...

揭秘:薪酬绩效管理咨询公司收费标准

在当今这个竞争激烈的商业环境中&#xff0c;企业的人力资源管理变得尤为重要&#xff0c;尤其是薪酬绩效管理体系的构建与优化。一个合理的薪酬绩效管理制度不仅能激发员工的积极性与创造力&#xff0c;还能帮助企业实现战略目标&#xff0c;提升整体竞争力。然而&#xff0c;…...

适用于机器视觉应用的智能机器视觉控制平台

工控机在机器视觉系统设计中是不可或缺的核心组件&#xff0c;在机器视觉中发挥着至关重要的作用&#xff0c;其强大的计算能力、高度的稳定性和可靠性、实时性以及图像处理和识别能力&#xff0c;为机器视觉检测提供了有力支持。 Nuvis系列机器视觉控制平台是适用于现如今机器…...