当前位置:首页 » 编程语言 » php基础试题

php基础试题

发布时间: 2025-07-08 09:55:35

Ⅰ 腾讯php面试题

腾讯php面试题

php程序员一般会遇到的面试题:

1. 基本知识点

HTTP协议中几个状态码的含义:503 500 401 200 301 302

Include require include_once require_once 的区别.

PHP/Mysql中几个版本的进化史,比如mysql4.0到4.1,PHP 4.x到5.1的重大改进等。

HEREDOC介绍

写出一些php魔幻方法;

一些编译php时的configure 参数

向php传入参数的两种方法。

(mysql)请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么区别;

error_reporting 等调试函数使用

您是否用过版本控制软件? 如果有您用的版本控制软件的名字是?

posix和perl标准的正则表达式区别;

Safe_mode 打开后哪些地方受限.

写代码来解决多进程/线程同时读写一个文件的问题。

写一段上传文件的代码。

Mysql 的存储引擎,myisam和innodb的区别。

2. web 架构,安全,项目经验

介绍xdebug,apc,eAccelerator,Xcache,Zend opt的使用经验。

使用mod_rewrite,在服务器上没有/archivers/567.html这个物理文件时,重定向到index.php?id=567 ,请先打开mod_rewrite.

MySQL数据库作发布系统的存储,一天五万条以上的增量,预计运维三年,怎么优化?

写出一种排序算法(原理),并说出优化它的方法。

请简单阐述您最得意的开发之作

对于大流量的网站,您采用什么样的方法来解决各页面访问量统计问题

您是否用过模板引擎? 如果有您用的模板引擎的名字是?

请介绍Session的原理,大型网站中Session方面应注意什么?

测试php性能和mysql数据库性能的工具,和找出瓶颈的方法。

正则提出一个网页中的'所有链接.

介绍一下常见的SSO(单点登陆)方案(比如dedecms整合discuz的passport)的原理。

您写过的PHP框架的特点,主要解决什么问题,与其他框架的不同点。

大型的论坛/新闻文章系统/SNS网站在性能优化上有什么区别?

相册类应用:要求在浏览器中能同时选中并上传多个文件,图片要求能剪裁,压缩包在服务器端解压。能上传单个达50M的文件。上传过程中有进度条显示。每个图片能生成四种大小缩略图,视频文件要转成flv供flash播放。叙述要涉及的各类开源软件和简单用途。

一群猴子排成一圈,按1,2,…,n依次编号。然后从第1只开始数,数到第m只,把它踢出圈,从它后面再开始数,再数到第m只,在把它踢出去…,如此不停的进行下去,直到最后只剩下一只猴子为止,那只猴子就叫做大王。要求编程模拟此过程,输入m、n, 输出最后那个大王的编号。用程序模拟该过程。

3. unix/linux 基本使用

linux下查看当前系统负载信息的一些方法。

vim的基本快捷键。

ssh 安全增强方法;密码方式和rsa key 方式的配置。

rpm/apt/yum/ports 装包,查询,删除的基本命令。

Makefile的基本格式,gcc 编译,连接的命令,-O0 和-O3区别。

gdb,strace,valgrind的基本使用.

4. 前端,HTML,JS

css盒模型。

javascript中的prototype。

javascript中this对象的作用域。

IE和firefox事件冒泡的不同。

什么是怪异模式,标准模式,近标准模式。

DTD的定义

IE/firefox常用hack.

firefox,IE下的前端js/css调试工具。

;

Ⅱ php常识选择题

1.PHP选择题
选择B。

PHP是一种简单的,面向对象的,解释型的,健壮的,安全的,性能非常之高的,独立于架构的,可移植的,动态的脚本语言。PHP具有和JAVA类似的Class关键字。因为不需要虚拟机,以致速度比JAVA快5倍。PHP

正迅速变成一种标准的,多用途的,面向对象的脚本语言。PHP不仅可用来开发Web应用程序,也可以开发普通应用程序。

PHP是一种功能强大的脚本语言。PHP将击败PERL/Python并取而代之。PHP是下一代的PERL/Python脚本。PHP可以胜任任何PERL/Python做的工作,并且做的更多,更好,更简洁!

2.关于基础知识问题
PHP不能仅仅理解为“制作网站脚本的语言”,太狭义了,PHP是置于服务器端运行的脚本程序,是解释型语言,通过(LINUX)或者.exe(WIN)解释执行。PHP本身实际上就是这个小小的解释程序。而我们时写的PHP代码,都是供这个解释程序来解析的脚本。

PHP的功能也在不断的发展和进步,所以才会有那么多的版本, 基本上每个版本都比前一个版本有不少的功能、安全、效率上的改进,解析程序、内置的方法也会有所变动。

而VBScript和JS是运行在浏览器端的脚本。主要的功能集中在UI方面,由浏览器本身解释执行。你可能感觉不到他们在升级,但实际上每当你升级浏览器时(比如IE6升级为IE7),对于JS的解析都会有一些变化,你会发现以前在IE6下能运行的JS,到了IE7下却报错了,这就要求你使用更为规范的代码来适应这些变化。

其实不光是PHP在不断升级,ASP、java何尝不是更新不断。
3.3道PHP选择题求答案,希望专业人士问答一下
1.下面哪个选项没有将 john 添加到 users 数组中? ( )(选择 2项)

推荐答案:B D

解释:

B) array_add 是数组相加,而不是给数组添加元素。

D) ||= 无法给数组添加元素。

2. 标识符是变量的名称。PHP中的标识符用“$+变量名”来表示。标识符在PHP中遵循下列选项中的那些规则?()(选择3项)

推荐答案:B C D

解释:

A)根据PHP手册正确提法:一个有效的变量名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。

3. 下面对PHP 说法正确的是?()(选择1项)

推荐答案:D)

解释:

(1)PHP以解释方式来执行,所以A、B先去掉。

(2)PHP,即“PHP: Hypertext Preprocessor”
4.关于的一些试题求答案
6. BD

7. E

9. D 参考:

20. E 参考://_ref_error

21. echo date('F-d-Y'); 参考:2/manual/zh/function.date

22. 当前脚本名称:$_SERVER['PHP_SELF']; 链接到当前页面的URL:$_SERVER['HTTP_REFERER']; 参考:/manual/zh/reserved.variables.server
5.PHP选择题
<?

$A="Hello ";

function print_A()

{

$A = " mysql !!";这个$A只是函数体内部定义的,叫做局部变量,不影响外面

global $A;此处是关键,global关键词为全局的意思,就是把全局变量(函数体外的$A)引入了函数体内,此时$A的是就是$A="Hello ";

echo $A;所以输出Hello

}

echo $A;这个$A的值是上面定义的$A="Hello ";的值,输出Hello,你应该懂吧。

print_A();调用print_A(),进入函数体内部执行

?>

提示:这到题主要考察你对global的理解,实在不懂就去网络一下 global,会出来很多对global的详细介绍。这些都是基础,必须要弄懂的,加油吧。朋友

Ⅲ PHP中高级面试题 – 第一天

一、写一个函数,获取一篇文章内容中的全部图片,并下载

二、什么是 CSRF 攻击?XSS 攻击?如何防范?
CSRF:跨站请求伪造,可以通过通过判断来源和加 Token 的方式来防范。

XSS:跨站脚本攻击,可以通过对内容转义和过滤来防范,还有 CSP

三、应用中我们经常会遇到在 user 表随机调取 10 条数据来展示的情况,简述你如何实现该功能。

四、MYSQL 中主键与唯一索引的区别

主键:绝对不能有空值。唯一索引:可以有空值

五、http 与 https 的主要区别

关键是 S 上。简而言之,https 建立连接后要先把 SSL 的证书发下去,有了公钥和私钥,就可以解密了。

六、两台 mysql 服务器,其中一台挂了,怎么让业务端无感切换,并保证正常情况下讲台服务器的数据是一致的

不是核心业务的话,先停写,把备机拉起来,查看两台机器的日志,进行数据补偿,开写。

如果是核心业务的话,现在所有的操作都在正常的状态机器上。把好的这台机器的备机拉起来,当主机。

以上全是应急操作。实际上数据库的容灾设计要复杂得多。

面试官要是问你,备机的数据不一致怎么办,你要勇敢怼回去,你们每秒多少写入操作。按照百万级表,每秒 1000 的写入效率,正常的设计是,分布在 2 台机器上每台 500。这个级别的数据同步,出现差异的概率 可以忽略不计的。有一台出现问题,另一台也可以抗住。

(正常的操作,还是先停写,等数据一致,切换,开写。我们公司搞这些切换都是在凌晨 4.00 左右,核心业务的每秒写操作,只有十几个。前后耽搁不到 20 秒)。

七、10 瓶水,其中一瓶有毒,小白鼠喝完有毒的水之后,会在 24 小时后死亡,问:最少用几只小白鼠可以在 24 小时后找到具体是哪一瓶水有毒。

答案:四只
二进制问题。薛定谔的老鼠。

一只老鼠有两个状态,死活,对应 01。假设老鼠的个数为 A,则有 2^A>=10; A=4;

思路很简单,十瓶药编号:0,1,10,11….1001;

0 不喝。第一只老鼠喝所有个位是 1 的:13579,第二只喝十位是 1 的,第三只和百位是 1 的,第四只喝千位是 1 的。

24 小时后,看下死了的是 1,活着的是 0。按老鼠的顺序乖乖站好…… 假如第一只和第三只死了,那就是 0101,就是 5 有问题。

Ⅳ 37道PHP面试题(附答案)

以下是37道PHP面试题及简洁答案概述:

  1. 面向对象是什么?

    • 答案:面向对象是通过封装、继承和多态提高程序复用性和清晰性的设计方法。
  2. SESSION与COOKIE的区别?

    • 答案:SESSION依赖cookie传递,存储在服务器,安全但消耗资源;COOKIE保存在客户端,易被篡改。
  3. HTTP状态代码302、403、500、401分别代表什么?

    • 答案:302代表临时重定向;403表示禁止访问;500表示服务器内部错误;401代表未授权。
  4. 常见的数据类型有哪些?varchar与char的区别是什么?

    • 答案:数据类型包括int、char、varchar、datetime和text等。varchar与char的区别在于存储空间:varchar动态分配,char固定长度。
  5. MyISAM与InnoDB的区别?

    • 答案:MyISAM适合频繁查询,不支持事务;InnoDB支持事务,适合大量插入和更新,但占用空间大,不支持全文索引。
  6. isset与empty的区别?

    • 答案:isset检查变量是否存在,可传递多个变量;empty判断变量是否为空,只接受一个变量。
  7. PHP中按值传递和按引用传递的区别?

    • 答案:按值传递在函数外部忽略修改;按引用传递则反映外部修改,根据操作需求选择传递方式。
  8. error_reporting函数的作用?

    • 答案:设置PHP错误报告级别,并显示当前级别的错误。
  9. 什么是缓存技术?

    • 答案:缓存技术是存储动态内容以减少数据库访问,提高页面响应速度。
  10. MVC结构包括哪些部分?其优点是什么?

    • 答案:MVC结构包括业务模型、视图和控制器。优点是代码重用、分离视图和业务逻辑。
  11. AJAX的优势是什么?

    • 答案:异步更新、减轻服务器压力、提升用户体验。
  12. 如何优化程序效率?

    • 答案:包括优化SQL、创建索引、缓存数据和合理架构。
  13. 解决大流量问题的策略有哪些?

    • 答案:使用缓存、负载均衡、CDN加速和减少数据库使用。
  14. include与require的区别?

    • 答案:require在失败时会中断执行,include则不会。可用require_once和include_once避免多次包含。
  15. @foo与foo的区别?

    • 答案:@foo忽略警告,foo则不会忽略。
  16. PHP的垃圾收集机制是怎样的?

    • 答案:通过refcount跟踪变量引用,当引用计数为0时释放内存。
  17. 如何确保程序安全?

    • 答案:避免SQL注入和XSS攻击,过滤用户输入,保护服务器细节。
  18. echo、print_r、var_mp、print的区别?

    • 答案:echo用于输出;print_r和var_mp用于打印变量结构;print有返回值,var_mp更详细。
  19. Smarty模板的特点是什么?

    • 答案:速度快、编译型、缓存、插件支持和强大逻辑。
  20. PHP页面跳转的方法有哪些?

    • 答案:包括header函数直接跳转、meta标签刷新和模板跳转。
  21. 如何使用iconv函数转换字符编码?

    • 答案:使用iconv函数将GB2312格式字符串转换为UTF8。
  22. 如何处理用户输入以防止XSS攻击?

    • 答案:入库前使用htmlspecialchars或htmlentities处理用户输入。
  23. CSRF攻击和XSS攻击分别是什么?如何防范?

    • 答案:CSRF攻击模拟用户请求,XSS攻击注入恶意脚本。防范方法包括验证token和过滤输入。
  24. 开发PHP应用时需关注哪些安全机制?

    • 答案:防止远程提交、SQL注入、验证码等。
  25. JSON是什么?

    • 答案:JSON是轻量级数据交换格式,易于跨语言传输。
  26. 事务具有哪些特性?

    • 答案:事务具有原子性、一致性、隔离性和持久性。
  27. 锁在数据库中的作用是什么?

    • 答案:锁用于并发控制,保证数据库一致性,包括行级锁和表级锁。
  28. 索引的作用及其缺点?

    • 答案:索引加速数据检索,但增加存储和写入开销。
  29. 范式理论是什么?

    • 答案:范式理论解释了数据结构的规范化,减少数据冗余。
  30. 主键、外键和索引的作用分别是什么?

    • 答案:主键用于唯一标识记录;外键用于关联关系;索引用于加快查询速度。
  31. private、protected和public修饰符的作用?

    • 答案:分别定义不同权限范围的类成员。
  32. 堆和栈的区别是什么?

    • 答案:堆动态分配内存,栈在编译时分配内存。
  33. 魔术方法是什么?

    • 答案:魔术方法如construct、destruct等在特定场景下自动执行。
  34. $this、self、parent的区别和使用场景?

    • 答案:$this代表当前对象;self代表当前类;parent代表父类,根据需要选择使用。
  35. 作用域操作符::的作用?

    • 答案:用于访问类常量和静态方法。
  36. __autoload函数的作用?

    • 答案:自动加载类,当实例化未引入的类时执行。
  37. 高并发网站的解决方案涉及哪些方面?

    • 答案:涉及前端、服务端、数据库和服务器层面的优化。

Ⅳ php面试题get和post的区别

1、Get 方法通过 URL 请求来传递用户的数据,将表单内各字段名称与其内容,以成对的字符串连接,置于 action 属性所指程序的 url 后,如http://www.domain.com/test.asp?name=51js&password=51js,数据都会直接显示在 url 上,就像用户点击一个链接一样;Post 方法通过 HTTP post 机制,将表单内各字段名称与其内容放置在 HTML 表头(header)内一起传送给服务器端交由 action 属性能所指的程序处理,该程序会通过标准输入(stdin)方式,将表单的数据读出并加以处理

2、 Get 方式需要使用 Request.QueryString 来取得变量的值;而 Post 方式通过 Request.Form 来访问提交的内容

3、Get 方式传输的数据量非常小,一般限制在 2 KB 左右,但是执行效率却比 Post 方法好;而 Post 方式传递的数据量相对较大,它是等待服务器来读取数据,不过也有字节限制,这是为了避免对服务器用大量数据进行恶意攻击,根据微软方面的说法,微软对用 Request.Form() 可接收的最大数据有限制,IIS 4 中为 80 KB 字节,IIS 5 中为 100 KB 字节

建议:除非你肯定你提交的数据可以一次性提交,否则请尽量用 Post 方法

4、Get 方式提交数据,会带来安全问题,比如一个登陆页面,通过 Get 方式提交数据时,用户名和密码将出现在 URL 上,如果页面可以被缓存或者其他人可以访问客户这台机器,就可以从历史记录获得该用户的帐号和密码,所以表单提交建议使用 Post 方法;Post 方法提交的表单页面常见的问题是,该页面如果刷新的时候,会弹出一个对话框

建议:出于安全性考虑,建议最好使用 Post 提交数据
***********************************
在B/S应用程序中,前台与后台的数据交互,都是通过HTML中Form表单完成的。Form提供了两种数据传输的方式——get和post。虽然它们都是数据的提交方式,但是在实际传输时确有很大的不同,并且可能会对数据产生严重的影响。虽然为了方便的得到变量值,Web容器已经屏蔽了二者的一些差异,但是了解二者的差异在以后的编程也会很有帮助的。
Form中的get和post方法,在数据传输过程中分别对应了HTTP协议中的GET和POST方法。二者主要区别如下:
1、Get是用来从服务器上获得数据,而Post是用来向服务器上传递数据。
2、Get将表单中数据的按照variable=value的形式,添加到action所指向的URL后面,并且两者使用“?”连接,而各个变量之间使用“&”连接;Post是将表单中的数据放在form的数据体中,按照变量和值相对应的方式,传递到action所指向URL。
3、Get是不安全的,因为在传输过程,数据被放在请求的URL中,而如今现有的很多服务器、代理服务器或者用户代理都会将请求URL记录到日志文件中,然后放在某个地方,这样就可能会有一些隐私的信息被第三方看到。另外,用户也可以在浏览器上直接看到提交的数据,一些系统内部消息将会一同显示在用户面前。Post的所有操作对用户来说都是不可见的。
4、Get传输的数据量小,这主要是因为受URL长度限制;而Post可以传输大量的数据,所以在上传文件只能使用Post(当然还有一个原因,将在后面的提到)。
5、Get限制Form表单的数据集的值必须为ASCII字符;而Post支持整个ISO10646字符集。
6、Get是Form的默认方法。
*.Post传输数据时,不需要在URL中显示出来,而Get方法要在URL中显示。
*.Post传输的数据量大,可以达到2M,而Get方法由于受到URL长度的限制,只能传递大约1024字节.
*.Post顾名思义,就是为了将数据传送到服务器段,Get就是为了从服务器段取得数据.而Get之所以也能传送数据,只是用来设计告诉服务器,你到底需要什么样的数据.Post的信息作为http请求的内容,而Get是在Http头部传输的。
网页表单当中的get方式和post方式的区别
1、get方式可传递的数据量有限,大约是2K左右,而post在iis5当中则达到100k,一般人们可以默认post是无限制的;
2、get方式在提交帐号密码等表单时不如post方式安全。在get提交表单以后浏览器的url会将你提交的表单参数全部显示在地址栏当中,而且可以通过机器的缓存来直接查看到各项参数;而post方式则不会;
3、get方式在后台处理页面用Request.QueryString接收各个参数;而post则用Request.Form获取;
4、get方式会忽略<form action="a.asp?a=a"里边的"a=a"这个参数;而post方式则不会

Ⅵ PHP 考试系统怎么生成随机试题,求代码写法.以选择题为例说明一下就行,假如从10个里抽3个,怎么在提交之

很简单,给你一个思路
你在数据库里面放10个题,
id questions options right_answer
1 china 是指哪个国家? A:中国;B:日本;C:美国 A

... ................ ............. ...
这样你从数据库中读取全部数据出来;
为了实现随机性,你可以用一个数组
<?php

$query=$mysql_query("select * from '表名'");
$results=$mysql_fetch_row($query);
$rand=array_rand($results,3);//取出随机的三个问题,注意这里取得是三个键值
$question=array($result[$rand[0]],$result[$rand[1]],$result[$rand[2]]);//将取出的三个问题放进一个数组中
?>

<form action="目标地址(此处用本页面地址)" method="post">

<?php

foreach($question as $values)
{
$options=explode(";",$values['options']);//用“;”将选项分割存进数组

echo $values['questions'];//显示题目
for($i=0;$i<count($options);$i++){
echo "<input type='radio' name=".$choice[$valest['id']]." value='A' >".$options[i]." /><br>";//输出选项
}
echo "----------------------------------------";//题目之间分隔符

}
//下面的代码是你接受form表单的页面,如果是本页面就直接接着上面的代码写
if(!empty($_POST[$choice]))
{
foreach($_POST[$choice] as $key=> $data)

{
$question_id=$key;

$user_choice=$data;
if(mysql_query("select * from '表名' where id=".$key."and right_answer='".$data."'"))
{
//答案对如何处理。。。。
}
else
{
//答案不对处理办法。。。。

}

}

}

?>

</form>

随手现写的代码,可能你里面有错误,但是思路你可以借鉴下~

热点内容
Char在sql 发布:2025-07-10 10:19:19 浏览:781
请密码不叫什么说话 发布:2025-07-10 10:06:22 浏览:113
苹果应用怎么设置密码 发布:2025-07-10 10:04:00 浏览:838
雪国脚本 发布:2025-07-10 10:04:00 浏览:937
编程让 发布:2025-07-10 09:48:13 浏览:359
数据库逻辑存储结构 发布:2025-07-10 09:26:56 浏览:920
密码编译找规律 发布:2025-07-10 09:18:10 浏览:512
电影视频缓存后 发布:2025-07-10 09:16:48 浏览:894
服务器搭建需要哪些东西 发布:2025-07-10 09:15:23 浏览:803
无限密码怎么改 发布:2025-07-10 09:14:32 浏览:106