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的认识?

答:由模型(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/

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏程序员的知识天地

Python新手快速入门教程-基础语法

交互式编程不需要创建脚本文件,是通过 Python 解释器的交互模式进来编写代码。

871
来自专栏达摩兵的技术空间

数组双向绑定的简单分享

本文主要是摘录《vuejs权威指南》部分的相关解读,我们都知道vue对数据支持双向绑定,对数组也是支持的,但是其在官网有明确说明,对于数组通过 对象.语法来修改...

1162
来自专栏生信宝典

Bash概论 - Linux系列教程补充篇

本篇是我最开始学习Linux命令时看的一篇帖子,最早见于ChinaUnix (这次查找其出处时发现2002年就有这篇)。学习过程中,遇到问题就查一下。这次看到,...

1967
来自专栏软件开发 -- 分享 互助 成长

谈谈 char *num="123";和char num[4]="123";的区别

最近写程序的时候发现这样一个问题 #include<iostream> #include <string.h> using namespace std; vo...

1978
来自专栏Theo Tsao

Vim的基本使用(一)

本文包含Vim的基本使用有: 移动光标、屏幕滚动、模式查找、位置标记、删除文本、撤销与重做、插入文本、复制与移动、修改文本、写入与退出。

1023
来自专栏遊俠扎彪

GNU C之圆括号套花括号(表达式中的复合语句)

GNU C对ANSI C做了很多扩展,除比较知名的0长度数组、typeof关键字之类的以外,还有一个比较有意思的,那就是圆括号里面套花括号的复合语句。举例如下:

2497
来自专栏十月梦想

字符串对象位置相关操作

762
来自专栏刺客博客

使用sed命令在两行匹配之间插入一行新内容

在这两个之间插入一行liming。 解决办法: 查了一下sed的用法貌似可以试一下,看到命令n可以读入下一行到pattern space,就可一匹配完前一行...

1082
来自专栏北京马哥教育

Shell特殊变量和命令行参数详解

? 1.shell变量基础 shell变量是一种很“弱”的变量,默认情况下,一个变量保存一个串,shell不关心这个串是什么含义。 所以若要进行数学运算,必须...

3916
来自专栏何俊林

Android开发基础规范(一)

【小提醒】阅读本文约耗时3分钟左右。 前言:Android中一些开发规范,避免给自己和别人少留坑。 一、工程相关 1.1 工程结构 当进行提交代码的工作时,工...

1987

扫码关注云+社区

领取腾讯云代金券