收藏一下PHP面试题

1.请写出数据类型(int char varchar,datetime,text)的意思?char与varchar的区别

int 整形  char字符型  varchar可变长度字符型  datetime时间日期类型 text文本类型

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

2.MyISAM和InnoDB的区别?

MyISAM不支持外键和事务处理,采用表锁机制,查询速度稍快,数据存储文件有3个

InnoDB支持外键与事务处理,采用行锁机制,查询速度比MyISAM稍慢,数据存储文件只有1个

3.不使用cookie向客户端发送一个cookie

$value="2222";

header("Set-Cookie:name=$value");

echo $_COOKIE['name'];

4.线性表与顺序表的区别?

线性表包括顺序表和链表

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

5.如何实现多个线程安全写入一个文件数据?

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

6.isset()和empty()区别,对不同数据的判断结果,$a=0;$a='0'$a=""; $a="false" $a=null

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

isset :true true,true,ture,false

empty:true,true,true,true,true

7.什么是满二叉树?什么是完全二叉树?

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

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

8.如何在页面间传递变量

GET POST COOKIE SESSION

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

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

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

冒泡排序法,快速排序法,插入排序法

11.在数据库test中一个表student,字段是name,class,score分别代表姓名,所在班级,分数

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

select * from student order by score desc

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

select 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 whete a.class=b.class

3)用PHP写入连接数据库('localhost','user',''pass),执行以上SQL,显示结果,判断错误 ,关闭数据库过程

$conn = mysql_connect('localhost','user','pass');

mysql_select_db('test');

$sql ="";

$restult=msyql_querty($sql);

mysql_close();

12.ftp://pub.sex.bar.com:2121/av/rls.sfv请给出这个URL各部分的意义?

ftp:// 使用协议是:ftp

pub.sex.bar.com域名

2121端口

av/rls.sfv当前访问的文件

13列出常用HTML标签名

<table></table><div<</div><a></a><form></form>

14.请写出5个常用的linux操作?

ls -l tar -zxvf touch cat mkdir rm

15.请写出以下5个unix系统配置文件/服务的作用

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

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

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

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

crontab计划任务命令

sshd远程连接管理命令

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

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

17.请列出5个常用的PHP操作MYSQL的函数

mysql_connect mysql_select_db mysql_query mysql_fetch_row mysql_close

18.有两张数据表,表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 a.id=user.id

19.php;'+'操作符的功能

数组数据合并,变量数据相加

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

foreach可遍历关联数组和索引数据,操作简单; for只能遍历索引数组 each list while以关联和索引两种方式遍历数组,操作复杂

21.请列出3个以上PHP中预定义的全局变量

$_SESSGION $_COOKIE $_SERVER $_GET $_POST

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

PHP函数strrev()

function str($str)

{

   $len=strlen($a);

   $b="";

  for($i=$len-1;$i>=0;$i--)

  {

        $b.=$a[$i];

   }

  return $b;

}

23.不断在文件hello.txt头部写入一行“Hello World”字符串,要求代码完整
<?php
    $fp=fopen('hello.txt','r');
    $str='hello!'.”\n”;
    $str.=fread($fp,filesize('hello.txt'));
    fclose($fp);
    $fp1=fopen('hello.txt','w');
    fwrite($fp1,$str);
?>
24.输出用户的IP地址,并且判断用户的IP地址是否在192.168.1.100 — 192.168.1.150之间
<?php
echo $ip=getenv('REMOTE_ADDR');
$ip=Str_replace('.',"",$ip);
if($ip<1921681150 && $ip>1921681100)
{
    echo 'ip在192.168.1.100—–192.168.1.150之间';
}
else
{
    echo 'ip不在192.168.1.100—–192.168.1.150之间';
}
25.请将2维数组按照name的长度进行重新排序,按照顺序将id赋值。
<?php
$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 '<pre>';
print_r($t);
echo '</pre>';
26.表单数据提交方式POST和GET的区别,URL地址传递的数据最大长度是多少?
POST方式提交数据用户不可见,是数据更安全,最大长度不受限制,而GET方式传值在URL地址可以看到,相对不安全,对大长度是2048字节。
27.SESSION和COOKIE的作用和区别,SESSION信息的存储方式,如何进行遍历?
Session遍历使用$_SESSION[]取值,cookie遍历使用$_COOKIE[]取值。
28.通过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);
29.Linux的目录进行遍历,编写shell脚本
#!/bin/bash
tree
30.什么是数据库索引,主键索引,唯一索引的区别,索引的缺点是什么?
索引用来快速地寻找那些具有特定值的记录。
主键索引和唯一索引的区别:主键是一种唯一性索引,但它必须指定为“PRIMARY KEY”,每个表只能有一个主键。唯一索引索引列的所有值都只能出现一次,即必须唯一。
索引的缺点:
1、创建索引和维护索引要耗费时间,这种时间随着数据量的增加而增加。
2、索引需要占用物理空间,除了数据表占数据空间之外,每一个索引还要占一定的物理空间,如果要建立聚簇索引,需要的空间就会更大。
3、当对表中 的数据进行增加、删除、修改的时候,索引也要动态的维护,这样就降低了数据的维护速度。
31.数据库设计时,常遇到的性能瓶颈有哪些,常有的解决方案?
瓶颈主要有:
1、磁盘搜索 优化方法是:将数据分布在多个磁盘上
2、磁盘读/写 优化方法是:从多个磁盘并行读写。
3、CPU周期 优化方法:扩充内存
4、内存带宽
31.编写一个在线留言本,实现用户的在线留言功能,留言信息存储到数据库?
假设现在有数据库:test 表名:mess 字段:id,name,message
1.html页面,填写留言:
<form action='post.php'>
留言者:<input type='text' name='name'/>
留言内容:<input type='text' name='message'/>
<input type='submit' value='提交'/>
</form>
Post.php页面,处理留言:

$conn=mysql_connect('localhost','root','') 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 '留言成功!';
}
32.通过JS实现页面的前进和后退操作?
<a href=”javascript:window.history.go(+1)”>前进</a>
<a href=”javascript:window.history.go(-1)”>后退</a>
33.浏览器IE和非IE浏览器的划分,区别是什么?
IE浏览器指的是使用IE内核的浏览器,对一些W3C标准的网页代码的支持不是很好。
非IE浏览器指的是没有使用IE内核的浏览器,对W3C标准的网页代码有很好的支持。
34设定网站的用户数量在千万级,但是活跃用户的数量只有1%,如何通过优化数据库提高活跃用户的访问速度?
我们可以根据用户的活跃程度,把活跃的用户提取出来放到另外一张表里面,每次活跃的用户登陆的时候就直接到活跃用户表中进行查询,这样就提高了数据库的查询速度。
35.表单中get与post提交方法的区别?
GET方式通过URL地址进行传值,在URL地址可以看到传递的值,最大长度也只支持2048字节,相对不安全。
POST方式通过http协议进行传值,用户无法看到传递的值,最大长度不受限制,相对比较安全。
36.Session 与cookie的区别?
SESSION存储在服务器端,用户无法进行修改,相对比较安全,COOKIE存储在客户端,用户通过手段可以进行修改,相对不安全。
Session会在一定时间内保存在服务器上,当访问增多,会比较占用服务器资源。
单个cookie在客户端的限制是3k,就是说一个站点在客户端存放的COOKIE不能超过3k。
37.数据库中的事务是什么?
事务就是一系列的操作,这些操作完成一项任务,只要这些操作中有一个没有操作成功,事务就操作失败,发生回滚事件,即撤销当前操作,这样可以保证数据的一致性。而且可以把操作暂时放在缓存里,等所有操作都都成功在提交到数据库,这样保证了操作的有效性。
38.实现不使用第3个变量,交换$a、$b的值,$a、$b的初始值自己定。
$a=4;
$b=5;
$a=explode(',',$a.','.$b);  把用逗号把4,5分开。
$b=$a[0];
$a=$a[1];
echo $a,$b;
39.用php打印出前一天的时间格式是2006-5-10 22:21:21

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

转载文章:https://blog.csdn.net/czloveyeer/article/details/8849823

猜你喜欢

转载自blog.csdn.net/weixin_42031763/article/details/80721560