php面试题整理
1.禁用COOKIE 后 SEESION 还能用吗?
答:通常服务器端的session是借助于seesion cookie来和客户端交互的。
但如果客户端禁用了cookie的话,session还可以借助于url来和客户端交互。
2. 抓取远程图片到本地,你会用什么函数?
<?php #1.readfile $url='http://img2.imgtn.bdimg.com/it/u=1003704465,1400426357&fm=21&gp=0.jpg'; $filename = "/tmp/test.gif"; ob_start(); readfile($url); $img = ob_get_contents(); ob_end_clean(); $size = strlen($img); $fp2=@fopen($filename, 'a'); fwrite($fp2, $img); fclose($fp2); #2.file_get_contents $img=file_get_contents('http://img2.imgtn.bdimg.com/it/u=1003704465,1400426357&fm=21&gp=0.jpg'); file_put_contents('test.gif',$img);
3.简述POST 和GET传输的最大容量分别是多少?
get 是通过URL提交数据,因此GET可提交的数据量就跟URL所能达到的最大长度有直接关系。很多文章都说GET方式提交的数据最多只能是1024字节,而 实际上,URL不存在参数上限的问题,HTTP协议规范也没有对URL长度进行限制。这个限制是特定的浏览器及服务器对它的限制。IE对URL长度的限制 是2083字节(2K+35字节)。对于其他浏览器,如FireFox,Netscape等,则没有长度限制,这个时候其限制取决于服务器的操作系统。即 如果url太长,服务器可能会因为安全方面的设置从而拒绝请求或者发生不完整的数据请求。
post 理论上讲是没有大小限制的,HTTP协议规范也没有进行大小限制,但实际上post所能传递的数据量大小取决于服务器的设置和内存大小。因为我们一般 post的数据量很少超过MB的,所以我们很少能感觉的到post的数据量限制,但实际中如果你上传文件的过程中可能会发现这样一个问题,即上传个头比较 大的文件到服务器时候,可能上传不上去,以php语言来说,查原因的时候你也许会看到有说PHP上传文件涉及到的参数PHP默认的上传有限定,一般这个值是2MB,更改这个值需要更改php.conf的post_max_size这个值。这就很明白的说明了这个问题了。
4.用最少的代码写一个求3值最大值的函数.
<?php #1.php自带函数 max($a, $b, $c); #2.三元运算符 function maxnum($a, $b, $c) { return $max = ($a > $b) ? ($a > $c ? $a : $c) : ($b > $c ? $b : $c); } ?>
5、谈谈对mvc的认识?
1 2 | 答:由模型(Model),视图(View),控制器(Controller)完成的应用程序 由模型发出要实现的功能到控制器,控制器接收组织功能传递给视图; |
6、GD库是做什么用的?
答:gd库提供了一系列用来处理图片的功能,使用GD库可以处理图片,或者生成图片。
在网站上GD库通常用来生成缩略图或者用来对图片加水印或者对网站数据生成报表。
7.请写出数据类型(int char varchar datetime text)的意思; 请问varchar和char有什么别?
答:int是数字类型,char固定长度字符串,varchar实际长度字符串,datetime日期时间型,text文本字符串
char的为固定长度的字符,效率更高,varchar为可变长度的字符
8.检测一个变量是否有设置的函数是?是否为空的函数是?
答:isset($str),empty($str);
9.请问PHP中echo和print有什么区别?
答:echo 不是一个函数(它是一个语言结构), 因此你不一定要使用小括号来指明参数,单引号,双引号都可以。 echo (不像其他语言构造)不表现得像一个函数, 所以不能总是使用一个函数的上下文。 另外,如果你想给echo 传递多个参数, 那么就不能使用小括号。
echo用来输出字符串,显示多个值的时候可以用逗号隔开。只支持基本类型,print不仅可以打印字符串值,而且可以打印函数的返回值。
print 实际上不是一个函数(它是一个语言结构),因此你可以不必使用圆括号来括起它的参数列表
10.PHP数据类型
答:
PHP 支持 8 种原始数据类型。
四种标量类型: boolean(布尔型) ,integer(整型) ,float(浮点型,也称作 double) ,string(字符串)
两种复合类型: array(数组) ,object(对象)
最后是两种特殊类型:resource(资源) ,NULL(无类型)
为了确保代码的易读性,php还有些一些伪类型:mixed(混合类型) ,number(数字类型) ,callback(回调类型)
11.什么是ORM
答:
ORM:object relation mapping,即对象关系映射,简单的说就是对象模型和关系模型的一种映射。
为什么要有这么一个映射?很简单,因为现在的开发语言基本都是oop的,但是传统的数据库却是关系型的。为了可以靠贴近面向对象开发,我们想要像操作对象一样操作数据库。
12.<? echo 'hello tusheng' ; ?> 没有输出结果, 可能是什么原因, 简述的解决此问题的过程(提示: 语法没有问题)
答:可能服务器上面没有开启短标签short_open_tag =设置为Off,
php.ini开启短标签控制参数: short_open_tag = On
http://blog.csdn.net/jinxingfeng_cn/article/details/16877833
http://wenku.baidu.com/view/aa43ecc3aa00b52acfc7ca94.html?st=1
http://www.jb51.net/article/33374.htm
http://www.jobui.com/mianshiti/it/php/4321/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~