热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

PHP程序员面试题参考手册

请写出数据类型(intcharvarchardatetimetext)的意思;请问varchar和char有什么区别?

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

答:

1Int 整形

2Char字符型

3Varchar 可变长度字符型

4Datetime 时间日期内省

5Text 文本类型

6Varchar 是可变长度类型,占用的空间是字符串的长度+1,而char是固定长度字符串类型,定义了多少空间就占用多少空间。

 

52.MyISAM 和 InnoDB 的基本区别?

答:

MYISAM不支持外键和事务处理,采用表锁机制,查询速度稍快,数据存储文件有3个,InnoDB支持外键和事务处理,采用行锁机制,查询速度比MYISAM稍慢,数据存储文件只有一个。

 

 

53.不使用COOKIE向客户端发送一个COOKIE.

答:

$value=”111″;

header(“Set-COOKIE:name=$value”);

echo $_COOKIE['name'];

 

54.线性表和顺序表的区别?

答:

1、线性表包括顺序表和链表。

2、顺序表中的元素的地址是连续的,链表里面节点的地址不是连续的,是通过指针连起来的。

55.如何实现多个线程安全的写入一个文件数据。

答:

采用锁机制,当一个用户在对此文件进行读写入操作时,将此文件锁定,操作完毕后解除锁定,在该用户进行读写入操作过程中,其他用户不能操作此文件,需要排队等待。

 

56.isset()empty() 区别,对不同数据的判断结果,$a=0;$a=’0′;$a=”;$a=false;$a=null;

Isset判断变量是否存在,如果存在则返回真,empty判断变量是否为空,如果为空则返回真。

答:

Isset判断:true,true,true,true,false

Empty判断:true,true,true,true,true

 

57.什么是满二叉树?什么事完全二叉树?

答:

满二叉树:除了叶子节点外的所有节点都有两个子节点。

完全二叉树:每个节点最多有两个子节点,缺右不缺左,而且最多只能缺少一个叶子节点。

 

58.如何在页面之间传递变量(至少两种方式) ?

答:

GET,POST,COOKIE,SESSION

 

59.写出匹配URL的正则表达式.

答:

/^http:\/\/www\.([\w]+)\.([\w]+)$/

 

 

 

 

 

 

 

 

60.请写出常见的排序算法(至少三种),并用PHP实现冒泡排序,将数组$a = array()按照从小到大的方式进行排序。

答:

 

冒泡排序法,快速排序法,插入排序法(一维数组)

 

冒泡:

$a=array(1,9,34,78,2,11,5);

Function maopao($arr){

$count=count($arr);

For($i=0;$i<$count;$i++)

{

For($j=$count-2;$j>=$i;$j–)

{

If($arr[$j]>$arr[$j+1])

{

$tmp=$arr[$j];

$arr[$j]=$arr[$j+1];

$arr[$j+1]=$tmp;

}

}

}

}

 

61.在数据库test中的一个表student,字段是nameclassscore。分别代表姓名、所在班级,分数。

答:

1) 学出每个班级中的学生,按照成绩降序排序;

2) 查出每个班的及格人数和不及格人数,格式为:class、及格人数、不及格人数;

3) PHP写入连接数据库(“localhost”,”msuser”,”mspass”)、执行以上SQL、显示结果、判断错误、关闭数据库的过程;

1select * from student order by score desc;

2Select A.class,A.及格人数,B.不及格人数 from (select class, count(*) as ’及格人数‘ from student where score>=60 group by class) as A,(select  class,count(*) as ’不及格人数‘ from student where score<60 group by class) as B where A.class=B.class;

3$cOnn=mysql_connect(‘localhost’,'root’,’12345′);

Mysql_select_db(‘test’);

$sql=”";

$result=Mysql_query($sql);

Mysql_close();

 

 

 

 

62.ftp://pub.foo.bar.com:2121/incoming/rls.sfv 请给出这个URL各部分的意义 

答:

1ftp:// ;使用的协议是:ftp

2Pub.foo.bar.com 是域名

32121 是使用的端口

4Incoming/rls.sfv 是当前访问的文件。

 

63.请列出4个常用的HTML标签名 

答:

 

64.下列不属于Javascript语法关键/保留字的是 B

A. var

B. $

C. function

D. while

 

65.下列不属于Javascrip DOM操作事件的是 C

A. onclick

B. onkeydown

C. onbodyload

D. onmouseover

 

66.请写出5个常用的unix操作命令

答:

1Ls -l

2tar -zxvf

3Touch

4Cat

5Mkdir

6rm

 

67.请写出以下5UNIX系统配置文件/服务的作用

答:

/etc/passwd /etc/hosts /etc/fstab crontab sshd

 

1/etc/passwd :用户信息文件,其中包含用户名、用户是否有密码、用户ID及用户所属组

2/etc/hosts:主机名数据库,包IP地址、主机名或域名、别名等信息,在此文件中添加记录可绕过DNS

3/etc/fstab  保存了系统所有分区信息的配置文件。

4Crontab 计划任务命令

5Sshd 远程连接管理命令

 

68.请写出5个常用的SQL操作关键字

答:

Select ,update, delete, insert into, create ,group by ,order by

 

69.请列出5个常用的PHP操作MySQL的函数 

答:

1Mysql_connect()

2Mysql_select_db()

3Mysql_query()

4Mysql_fetch_row()

5Mysql_close()

 

70.请写出下面MySQL数据类型表达的意义。

答:

1int(10) 整数类型,长度10

2char(16) 字符类型,长度16

3varchar(16) 可变长度字符类型,长度16

4Datetime 时间日期类型

5Text 大字符串类型

 

71.有两张数据表,表user(id, name)记录了用户的ID和昵称,表article(id, title, content, time)记录了用户发表的文章标题、内容和时间,写一个SQL语句打印出每个用户的昵称及其发表的文章总数。

答:

Select user.name,A.id,A.总数 from user,(select id,count(*) as ’总数‘ from article group by id) as A where user.id=A.id;

 

72.下列PHP函数中不能直接在页面输出字符串的函数是 B

A. echo

B. sprintf

C. printf

 

73.在PHP中,‘+’操作符的功能不包括 A

A. 字符串连接

B. 数组数据合并

C. 变量数据相加

 

74.下面哪个选项没有将john添加到users数组中?C

(A) $users[] = ’john’;

(B) array_push($users, ’john’);

(C) $users ||= ’john’;

(D) array_unshift($users, ’john’);

 

74.请列出3PHP数组循环操作的语法,并注明每种循环的优缺点 

答:

1Foreach() 可以遍历关联数组和索引数组,操作简单

2For() 只能遍历索引数组

3Each list while 以关联和索引两种方式遍历数组,操作复杂

 

75.请列出3PHP中的预定义全局变量 

答:

1$_SESSION

2$_COOKIE

3$_SERVER

4$_GET

5$_POST

 

76.从PHP4.2.0开始 PHP默认配置将register_globals配置设定为off,请指出这个设定的作用和对PHP相关程序的影响。

答:

Register_globals=off;的时候,关闭了全局变量注册,访问POST方式提交值时用$_POST[];来访问,访问GET方式提交的值时用$_GET[];方式访问。

 

77.写一个函数实现字符串翻转

答:

 

1、Strrev()

2自己写:

Function str($a){

$len=strlen($a);

$b=”";

For($i=$len-1;$i>=0;$i–)

{

$b.=$a[$i];

}

Return $b;

}

 

 

 

 

 

 

 

 

78.请写出下列PHP代码的执行结果 

$var1 = 5;

$var2 = 10;

function foo(&$my_var)

{

global $var1;

$var1 += 2;

$var2 = 4;

$my_var += 3;

return $var2;

}

$my_var = 5;

echo foo($my_var) . ”\n”;     4

echo $my_var . ”\n”;       8

echo $var1 . ”\n”;   7

echo $var2 . ”\n”;   10

$bar = ’foo’;

$my_var = 10;

echo $bar($my_var) . ”\n”;    4

 

79.不断在文件hello.txt头部写入一行“Hello World”字符串,要求代码完整

答:

$fp=fopen(‘hello.txt’,'r’);

$str=’hello!’.”\n”;

$str.=fread($fp,filesize(‘hello.txt’));

fclose($fp);

$fp1=fopen(‘hello.txt’,'w’);

fwrite($fp1,$str);

 

80.输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间

答:

Echo $ip=getenv(‘REMOTE_ADDR’);

$ip=Str_replace(‘.’,”",$ip);

If($ip<1921681150 && $ip>1921681100)

{

Echo ’ip192.168.1.100—–192.168.1.150之间‘;

}

Else

{

Echo ’ip不在192.168.1.100—–192.168.1.150之间‘;

}

 

 

 

81.请将2维数组按照name的长度进行重新排序,按照顺序将id赋值。

答:

$Tarray = array(

array(‘id’ => 0, ‘name’ => ‘123’),

array(‘id’ => 0, ‘name’ => ‘1234’),

array(‘id’ => 0, ‘name’ => ‘1235’),

array(‘id’ => 0, ‘name’ => ‘12356’),

array(‘id’ => 0, ‘name’ => ‘123abc’)

)

 

foreach($tarray as $key=>$val)

{

$c[]=$val['name'];

}

 

function aa($a,$b)

{

if(strlen($a)==strlen($b)) return 0;

return strlen($a)>strlen($b)?-1:1;

}

usort($c,’aa’);

$len=count($c);

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

{

$t[$i]['id']=$i+1;

$t[$i]['name']=$c[$i];

}

echo ’

’;

print_r($t);

echo ’

’;

 

82.表单数据提交方式POSTGET的区别,URL地址传递的数据最大长度是多少?

答:

POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。

 

83.SESSIONCOOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历?

答:

SESSIONCOOKIE都能够使值在页面之间进行传递,SESSION存储在服务器端,数据更安全,COOKIE保存在客户端,用户使用手段可以进行修改,SESSION依赖于COOKIE进行传递的。Session遍历使用$_SESSION[]取值,COOKIE遍历使用$_COOKIE[]取值。

 

 

84.通过PHP函数的方式对目录进行遍历,写出程序

答:

$dir=”./dd”;

Function open($dirs){

$dir=opendir($dirs);

while($f=readdir($dir))

{

If($f!=’.' && $f!=’..’)

{

$file=$dirs.’/’.$f;

If(is_file($file))

{

Echo ’文件名:‘.$file;

}

Else

{

Open($file);

}

}

}

}

 

Open($dir);

 

85.Linux的目录进行遍历,编写shell脚本

答:

#!/bin/bash

tree

 

86.什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?

答:

索引用来快速地寻找那些具有特定值的记录。

主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。

索引的缺点:

1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。

2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。

3、当对表中 的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。

 

 

 

 

87.数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案?

答:

瓶颈主要有:

1、磁盘搜索 优化方法是:将数据分布在多个磁盘上

2、磁盘读/写 优化方法是:从多个磁盘并行读写。

3CPU周期 优化方法:扩充内存

4、内存带宽 

 

88.编写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库?

答:

假设现在有数据库:test 表名:mess 字段:idnamemessage

1.html页面,填写留言:

留言者:

留言内容:

提交‘/>

Post.php页面,处理留言:

$cOnn=mysql_connect(‘localhost’,'root’,’12345′) or die(‘连接数据库失败!‘);

Mysql_select_db(‘test’);

$sql=”insert into mess(‘name’,'message’) values(‘{$_POST['name']}’,'{$_POST['message']}’)”;

$result=Mysql_query($sql);

If($result && mysql_insert_id($conn)>0)

{

Echo ’留言成功!‘;

}

 

89.通过JS实现页面的前进和后退操作?

答:

前进

后退

 

90.浏览器IE和非IE浏览器的划分,区别是什么?

答:

IE浏览器指的是使用IE内核的浏览器,对一些W3C标准的网页代码的支持不是很好。

IE浏览器指的是没有使用IE内核的浏览器,对W3C标准的网页代码有很好的支持。

 

91.设定网站的用户数量在千万级,但是活跃用户的数量只有1%,如何通过优化数据库提高活跃用户的访问速度?

答:

我们可以根据用户的活跃程度,把活跃的用户提取出来放到另外一张表里面,每次活跃的用户登陆的时候就直接到活跃用户表中进行查询,这样就提高了数据库的查询速度。

 

 

92.表单中getpost提交方法的区别?

答:

GET方式通过URL地址进行传值,在URL地址可以看到传递的值,最大长度也只支持2048字节,相对不安全。

POST方式通过http协议进行传值,用户无法看到传递的值,最大长度不受限制,相对比较安全。

 

93.Session COOKIE的区别?

答:

SESSION存储在服务器端,用户无法进行修改,相对比较安全,COOKIE存储在客户端,用户通过手段可以进行修改,相对不安全。

Session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器资源。

单个COOKIE在客户端的限制是3k,就是说一个站点在客户端存放的COOKIE不能超过3k

 

94.数据库中的事务是什么?

答:

事务就是一系列的操作,这些操作完成一项任务,只要这些操作中有一个没有操作成功,事务就操作失败,发生回滚事件,即撤销当前操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都都成功在提交到数据库,这样保证了操作的有效性。

 

95.实现不使用第3个变量,交换$a$b的值,$a$b的初始值自己定。

答:

$a=4;

$b=5;

$a=explode(‘,’,$a.’,’.$b);  把用逗号把4,5分开。

$b=$a[0];

$a=$a[1];

echo $a,$b;

 

96.用php打印出前一天的时间格式是2006-5-10 22:21:21

答:

Echo date(“Y-m-d H:i:s”,strtotime(“-1 day”));

97.如何实现字符串翻转?

答:

Strrev(字符串);

 

98.PHP的意思,它能干些什么?

答:

Hypertext preprocessor,是一种开源通用的脚本语言,它能嵌入到HTML中,实现web开发。
99.GD库是做什么用的?

答:

GD库是php的一个扩展,用来进行图像处理。

 

100.数据类型(int char varchar datetime text)的意思请问varcharchar有什么别?

答:

Int是整数类型

Char是定长字符串类型

Varchar 是不定长度字符串类型

Datetime 是时间日期类型

Text 是长字符串类型

Varcahar 不定长度,占用多少空间由里面字符串的长度决定。

Char 定义了多少长度就使用多少空间。


推荐阅读
  • MySQL 数据库迁移指南:从本地到远程及磁盘间迁移
    本文详细介绍了如何在不同场景下进行 MySQL 数据库的迁移,包括从一个硬盘迁移到另一个硬盘、从一台计算机迁移到另一台计算机,以及解决迁移过程中可能遇到的问题。 ... [详细]
  • 汇编语言等号伪指令解析:探究其陡峭的学习曲线
    汇编语言以其独特的特性和复杂的语法结构,一直被认为是编程领域中学习难度较高的语言之一。本文将探讨汇编语言中的等号伪指令及其对初学者带来的挑战,并结合社区反馈分析其学习曲线。 ... [详细]
  • 在使用SQL Server进行动态SQL查询时,如果遇到LIKE语句无法正确返回预期结果的情况,通常是因为参数传递方式不当。本文将详细探讨这一问题,并提供解决方案及相关的技术背景。 ... [详细]
  • 本文探讨如何利用人工智能算法自动区分网页是详情页还是列表页,介绍具体的实现思路和技术细节。 ... [详细]
  • MATLAB实现n条线段交点计算
    本文介绍了一种通过逐对比较线段来求解交点的简单算法。此外,还提到了一种基于排序的方法,但该方法较为复杂,尚未完全理解。文中详细描述了如何根据线段端点求交点,并判断交点是否在线段上。 ... [详细]
  • 高效解决应用崩溃问题!友盟新版错误分析工具全面升级
    友盟推出的最新版错误分析工具,专为移动开发者设计,提供强大的Crash收集与分析功能。该工具能够实时监控App运行状态,快速发现并修复错误,显著提升应用的稳定性和用户体验。 ... [详细]
  • 帝国CMS多图上传插件详解及使用指南
    本文介绍了一款用于帝国CMS的多图上传插件,该插件通过Flash技术实现批量图片上传功能,显著提升了多图上传效率。文章详细说明了插件的安装、配置和使用方法。 ... [详细]
  • 根据最新发布的《互联网人才趋势报告》,尽管大量IT从业者已转向Python开发,但随着人工智能和大数据领域的迅猛发展,仍存在巨大的人才缺口。本文将详细介绍如何使用Python编写一个简单的爬虫程序,并提供完整的代码示例。 ... [详细]
  • 并发编程:深入理解设计原理与优化
    本文探讨了并发编程中的关键设计原则,特别是Java内存模型(JMM)的happens-before规则及其对多线程编程的影响。文章详细介绍了DCL双重检查锁定模式的问题及解决方案,并总结了不同处理器和内存模型之间的关系,旨在为程序员提供更深入的理解和最佳实践。 ... [详细]
  • 本文详细探讨了JDBC(Java数据库连接)的内部机制,重点分析其作为服务提供者接口(SPI)框架的应用。通过类图和代码示例,展示了JDBC如何注册驱动程序、建立数据库连接以及执行SQL查询的过程。 ... [详细]
  • MySQL索引详解与优化
    本文深入探讨了MySQL中的索引机制,包括索引的基本概念、优势与劣势、分类及其实现原理,并详细介绍了索引的使用场景和优化技巧。通过具体示例,帮助读者更好地理解和应用索引以提升数据库性能。 ... [详细]
  • 深入理解Java中的Collection接口与Collections工具类
    本文详细解析了Java中Collection接口和Collections工具类的区别与联系,帮助开发者更好地理解和使用这两个核心组件。 ... [详细]
  • 本文探讨了MariaDB在当前数据库市场中的地位和挑战,分析其可能面临的困境,并提出了对未来发展的几点看法。 ... [详细]
  • 最近团队在部署DLP,作为一个技术人员对于黑盒看不到的地方还是充满了好奇心。多次咨询乙方人员DLP的算法原理是什么,他们都以商业秘密为由避而不谈,不得已只能自己查资料学习,于是有了下面的浅见。身为甲方,虽然不需要开发DLP产品,但是也有必要弄明白DLP基本的原理。俗话说工欲善其事必先利其器,只有在懂这个工具的原理之后才能更加灵活地使用这个工具,即使出现意外情况也能快速排错,越接近底层,越接近真相。根据DLP的实际用途,本文将DLP检测分为2部分,泄露关键字检测和近似重复文档检测。 ... [详细]
  • 本题探讨如何通过最大流算法解决农场排水系统的设计问题。题目要求计算从水源点到汇合点的最大水流速率,使用经典的EK(Edmonds-Karp)和Dinic算法进行求解。 ... [详细]
author-avatar
Vin-莹持_366
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有