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

PHP新浪面试题全部题目与答案-PHP源码

这是一个朋友在新浪面试之后把所有面试题与答案都拿出来了,下面我把东西记录一下,有用得上的兄弟们可先看一次,对过去面试有个底。
这是一个朋友在新浪面试之后把所有面试题与答案都拿出来了,下面我把东西记录一下,有用得上的兄弟们可先看一次,对过去面试有个底。

1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: /abc/de/fg.php?id=1 需要取出 php 或 .php

答:我是直接用PHP内置函数搞定的,不重复造轮子,估计出题者也是想考察基础知识,主要是解析url和一个返回文件信息的函数(扩展:取得文件后缀名的多种方法):

代码如下

/** by */
$url = "/abc/de/fg.php?id=1";
$path = parse_url($url);
echo pathinfo($path['path'],PATHINFO_EXTENSION); //php
?>


2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句

请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
请注意:
(1) 需要处理完整的 html 页面,即不光此 meta 语句
(2) 忽略大小写
(3) ' 和 " 在此处是可以互换的
(4) 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行
(5) 注意处理多余空格

答:表示我正则表达式(PHP正则详解)忘记差不多了,弄了半天。

代码如下

/** */
$html = "";
//匹配标准的meta标签
$pattern = "//i";
$replacement = "";
$result = preg_replace($pattern, $replacement, $html);
echo htmlspecialchars($result);
?>

3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上

答案:

代码如下

/** by */
$a = '/a/b/c/d/e.php';
$b = '/a/b/13/34/c.php';
echo getRelativePath($a, $b); //"../../12/34/"
function getRelativePath($a,$b){
$a2array = explode('/', $a);
$b2array = explode('/', $b);
$relativePath = '';
for( $i = 1; $i <= count($b2array)-2; $i++ ) {
$relativePath .= $a2array[$i] == $b2array[$i] ? '../' : $b2array[$i].'/';
}
return $relativePath;
}
?>


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

答:这个我之前就在博客中写过(PHP文件遍历及文件拷贝),只是实现的方法很多,效率不一定最高

代码如下


/*
*@blog
*/
function listDir($dir = '.'){
if ($handle = opendir($dir)) {
while (false !== ($file = readdir($handle))) {
if($file == '.' || $file == '..'){
continue;
}
if(is_dir($sub_dir = realpath($dir.'/'.$file))){
echo 'FILE in PATH:'.$dir.':'.$file.'
';
listDir($sub_dir);
}else{
echo 'FILE:'.$file.'
';
}
}
closedir($handle);
}
}

listDir('e:wwwabc');


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

答:无限极分类,那么应该是考察递归函数吧!

第一步:建立测试数据库:

代码如下

CREATE TABLE `category` (
`id` smallint(5) unsigned NOT NULL auto_increment,
`fid` smallint(5) unsigned NOT NULL default '0',
`value` varchar(50) NOT NULL default '',
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;


第二步:插入测试数据:

代码如下

INSERT INTO `category` ( `fid`, `value`) VALUES
(0, 'PHP点点通博客Pxx.COM'),
(1,'a'),
(1,'b'),
(2,'c'),
(2,'d'),
(4,'e')


第三步:递归输出分类:

代码如下


/** by */
$cOnn= mysql_connect("localhost", "root", "mckee");
mysql_select_db("test",$conn);
mysql_query("set names utf8");
$sql = "SELECT * FROM category";
$res = mysql_query($sql);
while($row = mysql_fetch_assoc($res)){
$arr[] = array($row[id],$row[fid],$row[value]);
}
getCate(0);
function getCate($fid = 0) {
global $arr;
for ($i = 0; $i if ($arr[$i][1] == $fid) {
echo $arr[$i][2] . "
";
getCate($arr[$i][0]); //递归
}
}
}
?>

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

答案:尼玛。都没明白出这题目是干嘛的,新浪工程师脑子进水了吗?考察js的window对象?亲们告诉我?

index.html

代码如下










fullwin.html

代码如下










unset引用

代码如下

$a = "this is a php blog";
$b = & $a;
unset($b);
echo $a; //this is a php blog
?>

这个我很清楚,unset($b),只是断开了变量名和值得绑定,但是神奇的是:

代码如下
$a = "test";
$b = & $a;
unset($a);
echo $b;//test
?>

但是我销毁$a了,为嘛$b的值还在呢?晕了,求解!

感谢下面网友回复,让我明白了:

关于unset()函数使用注意:只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放,如下:

代码如下
/** by www.111cn.net */
$a = "test";
$b = & $a;
unset($a);
unset($b);
echo $b;//输出空
?>

推荐阅读
  • 在说Hibernate映射前,我们先来了解下对象关系映射ORM。ORM的实现思想就是将关系数据库中表的数据映射成对象,以对象的形式展现。这样开发人员就可以把对数据库的操作转化为对 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • Oracle Database 10g许可授予信息及高级功能详解
    本文介绍了Oracle Database 10g许可授予信息及其中的高级功能,包括数据库优化数据包、SQL访问指导、SQL优化指导、SQL优化集和重组对象。同时提供了详细说明,指导用户在Oracle Database 10g中如何使用这些功能。 ... [详细]
  • 本文介绍了在SpringBoot中集成thymeleaf前端模版的配置步骤,包括在application.properties配置文件中添加thymeleaf的配置信息,引入thymeleaf的jar包,以及创建PageController并添加index方法。 ... [详细]
  • 知识图谱——机器大脑中的知识库
    本文介绍了知识图谱在机器大脑中的应用,以及搜索引擎在知识图谱方面的发展。以谷歌知识图谱为例,说明了知识图谱的智能化特点。通过搜索引擎用户可以获取更加智能化的答案,如搜索关键词"Marie Curie",会得到居里夫人的详细信息以及与之相关的历史人物。知识图谱的出现引起了搜索引擎行业的变革,不仅美国的微软必应,中国的百度、搜狗等搜索引擎公司也纷纷推出了自己的知识图谱。 ... [详细]
  • 本文由编程笔记小编整理,介绍了PHP中的MySQL函数库及其常用函数,包括mysql_connect、mysql_error、mysql_select_db、mysql_query、mysql_affected_row、mysql_close等。希望对读者有一定的参考价值。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 本文介绍了在Mac上搭建php环境后无法使用localhost连接mysql的问题,并通过将localhost替换为127.0.0.1或本机IP解决了该问题。文章解释了localhost和127.0.0.1的区别,指出了使用socket方式连接导致连接失败的原因。此外,还提供了相关链接供读者深入了解。 ... [详细]
  • 解决VS写C#项目导入MySQL数据源报错“You have a usable connection already”问题的正确方法
    本文介绍了在VS写C#项目导入MySQL数据源时出现报错“You have a usable connection already”的问题,并给出了正确的解决方法。详细描述了问题的出现情况和报错信息,并提供了解决该问题的步骤和注意事项。 ... [详细]
  • 本文介绍了如何使用PHP向系统日历中添加事件的方法,通过使用PHP技术可以实现自动添加事件的功能,从而实现全局通知系统和迅速记录工具的自动化。同时还提到了系统exchange自带的日历具有同步感的特点,以及使用web技术实现自动添加事件的优势。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • 在数据分析工作中,我们通常会遇到这样的问题,一个业务部门由若干业务组构成,需要筛选出每个业务组里业绩前N名的业务员。这其实是一个分组排序的 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Metasploit攻击渗透实践
    本文介绍了Metasploit攻击渗透实践的内容和要求,包括主动攻击、针对浏览器和客户端的攻击,以及成功应用辅助模块的实践过程。其中涉及使用Hydra在不知道密码的情况下攻击metsploit2靶机获取密码,以及攻击浏览器中的tomcat服务的具体步骤。同时还讲解了爆破密码的方法和设置攻击目标主机的相关参数。 ... [详细]
author-avatar
温柔锝钩子勾到你疼死-
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有