PHP新浪面试题全部题目与答案
1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
例如: /abc/de/fg.php?id=1 需要取出 php 或 .php
答:我是直接用PHP内置函数搞定的,不重复造轮子,估计出题者也是想考察基础知识,主要是解析url和一个返回文件信息的函数(扩展:取得文件后缀名的多种方法):
代码如下 | 复制代码 |
<?php |
2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
<META http-equiv='Content-Type' content='text/html; charset=gbk'>
请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
请注意:
(1) 需要处理完整的 html 页面,即不光此 meta 语句
(2) 忽略大小写
(3) ' 和 " 在此处是可以互换的
(4) 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行
(5) 注意处理多余空格
答:表示我正则表达式(PHP正则详解)忘记差不多了,弄了半天。
代码如下 | 复制代码 |
<?php |
3. 写一个函数,算出两个文件的相对路径
如 $a = '/a/b/c/d/e.php';
$b = '/a/b/12/34/c.php';
计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
答案:
代码如下 | 复制代码 |
<?php |
4.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
答:这个我之前就在博客中写过(PHP文件遍历及文件拷贝),只是实现的方法很多,效率不一定最高
代码如下 | 复制代码 |
|
5.简述论坛中无限分类的实现原理。
答:无限极分类,那么应该是考察递归函数吧!
第一步:建立测试数据库:
代码如下 | 复制代码 |
CREATE TABLE `category` ( |
第二步:插入测试数据:
代码如下 | 复制代码 |
INSERT INTO `category` ( `fid`, `value`) VALUES |
第三步:递归输出分类:
代码如下 | 复制代码 |
|
6.设计一个网页,使得打开它时弹出一个全屏的窗口,该窗口中有一个文本框和一个按钮。用户在文本框中输入信息后点击按钮就可以把窗口关闭,而输入的信息却在主网页中显示!
答案:尼玛。都没明白出这题目是干嘛的,新浪工程师脑子进水了吗?考察js的window对象?亲们告诉我?
index.html
代码如下 | 复制代码 |
<html> |
fullwin.html
代码如下 | 复制代码 |
|
unset引用
代码如下 | 复制代码 |
<?php |
这个我很清楚,unset($b),只是断开了变量名和值得绑定,但是神奇的是:
代码如下 | 复制代码 |
<?php $a = "test"; $b = & $a; unset($a); echo $b;//test ?> |
但是我销毁$a了,为嘛$b的值还在呢?晕了,求解!
感谢下面网友回复,让我明白了:
关于unset()函数使用注意:只有当指向该值的所有变量(比如有引用变量指向该值)都被销毁后,地址才会被释放,如下:
代码如下 | 复制代码 |
<?php /** by www.111cn.net */ $a = "test"; $b = & $a; unset($a); unset($b); echo $b;//输出空 ?> |
具体操作
JSON是什么?
JSON一种用于在互联网络中传输超量数据的数据交换格式。虽然在Internet中交换数据XML占主要地位,然而JSON却更加的简单并且适用于轻型的数据。
尽管JSON当初是被JavaScript发明并且用于访问远程数据的,它现在却被广泛适用于各种语言,因为JSON是一种于平台无关的数据格式。
JSON数据的数据类型和实例
JSON支持各种各样的数据类型,包括数字、字符串、布尔值、数组数据甚至对象数据(是一个集合,每个元素都是键:值对形式,使用逗号分隔,并且使用大括号包裹)。
让我们看一个JSON数据的简单例子,该例子表示一个雇员的详细信息:
代码如下 | 复制代码 |
{“id”:”1″,”name”:”mike”,”country”:”usa”,”office”:["microsoft","oracle"]} |
使用PHP创建和解析JSON数据的方法
PHP从5.2.0版本以后提供了JSON扩展来处理JSON数据,通过PHP有两个函数json_encode()和json_decode非常方便的对JSON数据进行转换和解析。
首先,让我们看一段PHP用数组创建如上各式的JSON的代码:
代码如下 | 复制代码 |
$json_data = array ('id'=>1,'name'=>"mike",'country'=>'usa',"office"=>array("microsoft","oracle")); echo json_encode($json_data); |
该代码直接产生了JSON数据。现在让我们用PHP将上面的JSON解码:
代码如下 | 复制代码 |
$json_string='{"id":1,"name":"mike","country":"usa","office":["microsoft","oracle"]} '; $obj=json_decode($json_string); |
现在变量$obj包含了使用PHP解析后的JSON数据,你可以使用以下的方法来输出和访问:
代码如下 | 复制代码 |
echo $obj->name; //displays mike echo $obj->office[0]; //displays microsoft |
你猜的没错$obj->office是一个数组,你能够使用PHP的foreach方法遍历它:
代码如下 | 复制代码 |
foreach($obj->office as $val) echo $val; |
ajax时返回JSON格式的数据
原来的数据就是JSON格式
下例来自《锋利的jQuery
代码如下 | 复制代码 |
你需要做的就是将数据存储为格式正确的 .json或者.js 文件。以下为示例所传送的json格式的数据
|
php输出JSON格式
那么php如何输出json格式?php 使用json_encode函数,然后jQuery使用datatype:json 就可以了嘛? 它的输出如下:
显然并非所愿。还是字符串,到底怎么实现?其实很简单,只要在php文件头部加入以下代码:
代码如下 | 复制代码 |
|
这个头就是告知此文件输出类型为 json,这种形式我们见的最多的是验证码——php输出验证图片,有时php可以输出css文件,js文件等做一些有趣的事情。好的,我们测试一下吧
代码如下 | 复制代码 |
<?php $fruits = array ( |
先看一个实例
代码如下 | 复制代码 |
|
php部分:
代码如下 | 复制代码 |
$jsonp_callback=$_GET['jsonp_callback']; //... //如果正确 echo $jsonp_callback,'({"msg":"ok"})'; 5.//如果错误 echo $jsonp_callback,'({"msg":"err","info":"因人品问题,发送失败"})'; |
//...值得注意的是采用jsonp 方式,beforeSend / error 都不能用了,所以beforeSend里面用js实现的验证只能用ajax在服务器端test.php上面验证了。
域名下面有这么个html文件testjsonp.html:
代码如下:
代码如下 | 复制代码 |
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN“ “http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd“> |
注意,要真正运行上面的代码可能需要jquery的文件,你可以将
代码如下 | 复制代码 |
<script type=“text/javascript“ src=“jquery-1.7.2.min.js“></script> |
改为你目录中jquery的文件路径:
如:
代码如下 | 复制代码 |
<script type=“text/javascript“ src=“js/jquery.js“></script> |
然后,你可以再找个另外一个域名的web目录,将文件jsonp.php:
代码如下:
代码如下 | 复制代码 |
<?php $callback = $_GET[“callback“]; $a = array( 'code'=>'CA1998', 'price'=>'6000', 'tickets'=>20, 'func'=>$callback, ); $result = json_encode($a); echo “flightHandler($result)“; exit; |
放到这个目录下面去。这样就可以测试了。
直接在浏览器访问testjsonp.html.就可以看到效果了
1,首先,我们就来检查PHP配置文件 php.ini
打开PHP所安装目录下的 php.ini 文件,Ctrl+F搜索“php_mysql.dll”,将“;extension=php_mysql.dll”前的“;”删除以取消注释,同时搜索并修改“extension_dir”的值为“php_mysql.dll”文件所在文件夹。即:
extension_dir = "D:PHPext"
extension=php_mysql.dll
2,然而通过这一页所使用的安装版是没有保存PHP扩展DLL文件的ext文件夹的,所以也就没有php_mysql.dll,我们运行phpMyAdmin当然会有问题
继续打开http:\www.php.netdownloads.php 选择“PHP 5.2.3 zip package”压缩包文件,将其中的ext文件夹全部解压到PHP的安装目录下,所以才有了extension_dir = "D:PHPext"(注:前提是你的PHP安装在D盘)
3,完成了对php.ini文件的修改和包含有php_mysql.dll的ext文件夹的添加,建议重新启动下计算机,再来调试phpMyAdmin
4,当然,对于phpMyAdmin文件夹内的config.inc.php文件进行MySQL帐号和密码的修改。
另外,在网络上搜索了下本问题的相关解决方法,有的解决还需要把“php.ini文件和php_mysql.dll拷贝到了c:windows 以及c:windowssystem32目录”内,这是由于PHP是非安装版,一般安装版则不需要了,你可以在“我的电脑”属性“高级”中选择“环境变量”查看系统变量“Path”其中就指明了PHP的安装路径。
phpMyAdmin“无法载入mysql扩展,请检查PHP配置”的问题解决
总结一下
然后大费周折的实验php安装文件夹里面的三个文件,php.ini;libmysql.dll;extphp_mysql.dll;
其中php.ini中
;extension=php_mysql.dll改成了extension=php_mysql.dll
extension_dir = "." 这个不重要,不一定非要改成extension_dir = "c:phpext"
最后我把php.ini拷贝到了c:windows目录;c:windowssystem32目录
把libmysql.dll;extphp_mysql.dll;也分别拷贝进这两个目录
phpmailer是一个非常优秀的php邮箱发送插件了,他可以几乎实现任何邮箱登录发送,下面我介绍163邮箱 126邮箱 yahoo邮箱的发送方法。准备工作:
我们必须注册一个邮箱(163邮箱 126邮箱 yahoo邮箱)随便一个
注意事项
这些邮箱必须是支持登录发送才可以,我们配置就一个地方不。
163邮箱 $mail->Host = "smtp.163.com";
126邮箱 $mail->Host = "smtp.126.com";
yahoo邮箱 $mail->Host = "smtp.mail.yahoo.com.cn";
其它的地方一样的写法,用户名密码你当然要写自己的哦。
我下以163邮箱为实例
代码如下 | 复制代码 |
<?php |
注意,红色地方就是根据你自己的需要修改。
相关文章
- 这篇文章主要介绍了源码分析系列之json_encode()如何转化一个对象,对json_encode()感兴趣的同学,可以参考下...2021-04-22
- PHP去除html、css样式、js格式的方法很多,但发现,它们基本都有一个弊端:空格往往清除不了 经过不断的研究,最终找到了一个理想的去除html包括空格css样式、js 的PHP函数。...2013-08-02
- index.php怎么打开?初学者可能不知道如何打开index.php,不会的同学可以参考一下本篇教程 打开编辑:右键->打开方式->经文本方式打开打开运行:首先你要有个支持运行PH...2017-07-06
PHP中func_get_args(),func_get_arg(),func_num_args()的区别
复制代码 代码如下:<?php function jb51(){ print_r(func_get_args()); echo "<br>"; echo func_get_arg(1); echo "<br>"; echo func_num_args(); } jb51("www","j...2013-10-04- 这篇文章主要介绍了PHP编程 SSO详细介绍及简单实例的相关资料,这里介绍了三种模式跨子域单点登陆、完全跨单点域登陆、站群共享身份认证,需要的朋友可以参考下...2017-01-25
- 这篇文章主要介绍了PHP实现创建以太坊钱包转账等功能,对以太坊感兴趣的同学,可以参考下...2021-04-20
- 这篇文章主要给大家介绍了7道关于JS this的面试题,来看看你能答对几个,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2021-03-05
- 这篇文章主要为大家详细介绍了php微信公众账号开发之五个坑,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-10-02
ThinkPHP使用心得分享-ThinkPHP + Ajax 实现2级联动下拉菜单
首先是数据库的设计。分类表叫cate.我做的是分类数据的二级联动,数据需要的字段有:id,name(中文名),pid(父id). 父id的设置: 若数据没有上一级,则父id为0,若有上级,则父id为上一级的id。数据库有内容后,就可以开始写代码,进...2014-05-31- 这篇文章主要介绍了PHP如何通过date() 函数格式化显示时间,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-11-13
- 今天我给大家分享的是在不刷新页面的前提下,使用PHP+jQuery+Ajax实现多图片上传的效果。用户只需要点击选择要上传的图片,然后图片自动上传到服务器上并展示在页面上。...2015-03-15
- 这篇文章主要介绍了golang与php实现计算两个经纬度之间距离的方法,结合实例形式对比分析了Go语言与php进行经纬度计算的相关数学运算技巧,需要的朋友可以参考下...2016-07-29
- 这篇文章主要介绍了PHP正则表达式过滤html标签属性的相关内容,实用性非常,感兴趣的朋友参考下吧...2016-05-06
- 这篇文章主要为大家详细介绍了php构造方法中析构方法在继承中的表现,感兴趣的小伙伴们可以参考一下...2016-04-15
- 这篇文章主要介绍了thinkPHP中多维数组的遍历方法,以简单实例形式分析了thinkPHP中foreach语句的使用技巧,需要的朋友可以参考下...2016-01-12
- 这篇文章主要介绍了PHP如何使用cURL实现Get和Post请求,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-11
- 经常看到有人踩在了PHP路径的坑上面了,感觉有必要来说说PHP中相对路径的一些坑,以及PHP中绝对路径的使用,下面一起来看看。 ...2016-08-24
- 这篇文章主要为大家详细介绍了php图片添加文字水印实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2016-03-17
- 这篇文章主要介绍了php有序列表或数组中删除指定的值的实现代码,删除给定的值之后,得到一个新的有序列表,长度-1,下面是具体的实现方法...2021-08-22
- 这篇文章主要介绍了PHP简单实现生成txt文件到指定目录的方法,简单对比分析了PHP中fwrite及file_put_contents等函数的使用方法,需要的朋友可以参考下...2016-04-28