看到很多同学面试出现问题,这里提供一些资料

本文提供了一系列PHP面试题目,涵盖PHP基础知识、字符串操作、数据库优化、模板引擎应用等内容,并附带了部分答案解析。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

PHP的面试题集

PHP的面试题集(h058整理)

面试题1

1、用PHP打印出前一天的时间格式是2006-5-10 22:21:21

print date('Y-m-d', time()-86400);

2echo(),print(),print_r()的区别

echo语言结构, print/print_r是函数. print是一般性输出, print_r输出包含底层类型.

3、能够使HTMLPHP分离开使用的模板

?听不懂. smarty?

4、如何实现PHPJSP交互?

...没用过jsp

5、使用哪些工具进行版本控制?

cvs, subversion

6、如何实现字符串翻转?

print strrev('abc');

7、优化MYSQL数据库的方法。

针对经常用到的关键列多做索引, explain

8、谈谈事务处理

事务处理是指连续性的动作不可被打断的过程, 事务处理失败会撤销相应的影响

9apache+mysql+php实现最大负载的方法

...软件角度的提升, 不如硬件角度的提升来得快

10、实现中文字串截取无乱码的方法。

中文是gb2312还是utf8?gb2312utf8特点判断下就可以了.

面试题2

var $empty       = '';

var $null        = NULL;

var $bool        = FALSE;

var $notSet;

var $array       = array();

1.

$a = "hello";

$b = &$a;

unset($b);

$b = "world";

what is $a?

'hello'

2.

$a = 1;

$x = &$a;

$b = $a++;

what is $b?

1

3.

$x = empty($array);

what is $x?   true    or    false

true

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

.cvs, subversion.

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

.smarty

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

还没.一个人不够.想找合作者.

7.对于大流量的网站,您采用什么样的方法来解决访问量问题?

针对动态性不强的ye, 可以生成静态的; 交互性强的, 没多少办法, 我仍然相信性能角度投资软件不如投资硬件.

8.PHP写出显示客户端IP与服务器IP的代码:

print $_SERVER['remote_addr'].$_SERVER['server_addr'];

面试题3

一、PHP/MySQL编程

1) 某内容管理系统中,表message有如下字段

id 文章id

title 文章标题

content 文章内容

category_id 文章分类id

hits 点击量

创建上表,写出MySQL语句

DROP TABLE IF EXISTS message;

CREATE TABLE IF NOT EXISTS message

(

id INT NOT NULL AUTO_INCREMENT,

title VARCHAR(200) NOT NULL DEFAULT '',

content TEXT,

category_id INT, #这里估计还要改, 暂时放下

hits INT,

PRIMARY KEY(id)

);

CREATE INDEX message_title_index ON message(title);

2)同样上述内容管理系统:表comment记录用户回复内容,字段如下

comment_id 回复id

id 文章id,关联message表中的id

comment_content 回复内容

现通过查询数据库需要得到以下格式的文章标题列表,并按照回复数量排序,回复最高的排在最前面

文章id 文章标题 点击量 回复数量

用一个SQL语句完成上述查询,如果文章没有回复则回复数量显示为0

SELECT m.id, m.title, m.hits, count(comment_id) as total FROM message m LEFT JOIN comment ON (m.id=comment.id) GROUP BY(m.id) ORDER BY total DESC;

3) 上述内容管理系统,表category保存分类信息,字段如下

category_id int(4) not null auto_increment;

categroy_name varchar(40) not null;

用户输入文章时,通过选择下拉菜单选定文章分类

写出如何实现这个下拉菜单

办法很多, javascript(php取出所有分类), javascript/post/php, javascript/ajax/php...

二、PHP文件操作

1)

上述内容管理系统:用户提交内容后,系统生成静态HTML页面;写出实现的基本思路

if (!file_exists($html_file))

{

  ob_start();

  $html = ob_get_contents();

  file_put_contents($file, $html);

  ob_end_clean;

}

header('Location: '.$html_file);

exit;

2) 简单描述用户修改以发布内容的实现流程和基本思路

??说什么?

三、PHP程序

1) 写出以下程序的输出结果

<?

$b=201;

$c=40;

$a=$b>$c?4:5;

echo $a;

?>

4

2) 写出以下程序的输出结果

<?

$str="cd";

$$str="hotdog";

$$str.="ok";

echo $cd;

?>

hotdogok

面试题4

. 简答题

1. 请说明php中传值与传引用的区别。什么时候传值什么时候传引用?

...拷贝消耗比较大时用引用...

2. PHPerror_reporting这个函数有什么作用?

控制错误输出级

3. 请写一个函数验证电子邮件的格式是否正确

strpos(&apos;@&apos;, $str)

4. 简述如何得到当前执行脚本路径,包括所得到参数。

说明:例如有一个脚本 www.domain.com,传给他的参数有参数1,参数2,参数3.

传递参数的方法有可能是GET有可能是POST,那么现在请写出类似

http://www.domain.com/script.php? 参数1=1&参数2=2..... 的结果

http://$_SERVER[&apos;HTTP_HOST&apos;]$_SERVER[&apos;SCRIPT_NAME&apos;]?$_SERVER[&apos;QUERY_STRING&apos;]

5.如何修改SESSION的生存时间.

php -i | grep session

6..有一个网页地址 http://www.domain.com/xxx.php,如何得到它的内容?

print file_get_contents(&apos;http://www.domain.com/xxx.php&apos;);

7. 有一个一维数组,里面存储整形数据,请写一个函数,将他们按从大到小的顺序排列。要求执行效率高。并说明如何改善执行效率。(该函数必须自己实现,不能使用php函数)

算法问题不考虑. 要效率写c.

8. 请举例说明在你的开发过程中用什么方法来加快页面的加载速度。

可以压缩输出, 我没用过.

. 数据库设计题:

比较长...不写了

面试题5

1.PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量(1)中;而链接到当前页面的URL记录在预定义变量(2)中。

$_SERVER[&apos;PHP_SELF&apos;]           $_SERVER[&apos;HTTP_REFERER&apos;];

2.执行程序段<?php echo 8%(-3) ?>将输出(3)。

2

3.HTTP 1.0中,状态码 401 的含义是(4);如果返回“找不到文件”的提示,则可用 header 函数,其语句为(5)。

查查RFC就知道了. header(&apos;Status: ...&apos;);

4.数组函数 arsort 的作用是(6);语句 error_reporting(2047)的作用是(7)。

数组排序后反转并保持key相关. 开启全部出错输出, E_ALL

5.PEAR中的数据库连接字符串格式是(8)。

类似: mysql://user:pass@host/database

6.写出一个正则表达式,过虑网页上的所有JS/VBS脚本(即把script标记及其内容都去掉):(9)。

$re = &apos;|<script[^>]*>(.*)</script>|i&apos;;

$content = preg_replace($re, &apos;$1&apos;, $content);

7.Apache模块的方式安装PHP,在文件http.conf中首先要用语句(10)动态装载PHP模块,然后再用语句(11)使得Apache把所有扩展名为php的文件都作为PHP脚本处理。

LoadModule module_php5 modules/libphp5.so

AddType application/x-httpd-php .php

8.语句 include require 都能把另外一个文件包含到当前文件中,它们的区别是(12);为了避免多次包含同一文件,可以用语句(13)来代替它们。

当文件不存在时, 一个warning, 一个error..............._once

9.类的属性可以序列化后保存到 session 中,从而以后可以恢复整个类,这要用到的函数是(14)。

unserialize

10.一个函数的参数不能是对变量的引用,除非在php.ini中把(15)设为on.

...

11.SQL LEFT JOIN的含义是(16)。如果 tbl_user记录了学生的姓名(name)和学号(ID)tbl_score记录了学生(有的学生考试以后被开除了,没有其记录)的学号(ID)和考试成绩(score)以及考试科目(subject),要想打印出各个学生姓名及对应的的各科总成绩,则可以用SQL语句(17)。

SELECT u.name, SUM(s.score) AS total_score FROM tbl_user u LEFT JOIN tbl_score s ON (u.ID=s.ID) GROUP BY u.ID;

12.PHP中,heredoc是一种特殊的字符串,它的结束标志必须(18)。

print <<<EOF

i love this game.

EOF;

13.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。

function list($dir)

{

  foreach(glob("$dir/*.*") as $file)

  {

    if (is_file($file))

    {

      //do something

    }

    else if (is_dir($file))

    {

      list($file);

    }

  }

}

14.简述论坛中无限分类的实现原理。

无限分类是不可能的. 来个100层分类shu状显示看看.

15.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示。

window.open,

onClick=opener.close()

面试题6

有一表 menu(mainmenu,submenu,url),请用递归法写出一树形菜单,将所有的menu列出来。

showMenu($menu = &apos;mainmenu&apos;)

{

  print $menu;

  $sql = "SELECT submenu FROM menu WHERE mainmenu=$menu";

  //get submenu into array $menus

  foreach($menus as $menu)

  {

    showMenu($menu);

  }

}

可以加个$level, 也可以把输出放到数组里

面试题7

1- 给你三个数,写程序求出其最大值。

print $a > $b ? ($a>$c ? $a : $c) : ($b>$c ? $b : $c);

2- 谈谈asp,php,jsp的优缺点

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值