`
hudeyong926
  • 浏览: 2035335 次
  • 来自: 武汉
社区版块
存档分类
最新评论

PHP面试常见问题

阅读更多

使用json_encode编码中文返回null的解决方案

在 php 5.4 之后  ,默认的转码为 utf-8 .同时 ,json_encode 要求字符串必须是utf-8的.

 

mysql防注入函数

注意在PHP5.3之前,magic_quotes_gpc是默认开启的

1.addslashes(): 函数返回在预定义字符之前添加反斜杠的字符串。

预定义的字符有:
    单引号(')
    双引号(")
    反斜杠(\)
    NULL

 2.mysql_real_escape_string(): 函数转义 SQL 语句中使用的字符串中的特殊字符。

下列字符受影响:
  \x00
  \n
  \r
  \
  '
  "
  \x1a

xss(跨站脚本攻击)怎么防止
htmlentities() htmlspecialchars()

 

CSRF是什么,怎么防止

CSRF(Cross-site request forgery),中文名称:跨站请求伪造。攻击者盗用你的身份,以你的名义发送恶意请求

token验证方法

 

PHP 不使用第三个变量实现交换两个变量的值
list($b,$a)=array($a,$b);


安全对一套程序来说至关重要,请说说在开发中应该注意哪些安全机制?
①防远程提交;②防SQL注入,对特殊代码进行过滤;③防止注册机灌水,使用验证码;

数组中下标最好是什么类型的,为什么?
数组的下标最好是数字类型的,数字类型的处理速度快。


++i和i++哪一个效率高,为什么?
++i效率比i++的效率更高,因为++i少了一个返回i的过程。


请说明 PHP 中传值与传引用的区别。什么时候传值什么时候传引用?
按值传递:函数范围内对值的任何改变在函数外部都会被忽略
按引用传递:函数范围内对值的任何改变在函数外部也能反映出这些修改
优缺点:按值传递时,php必须复制值。特别是对于大型的字符串和对象来说,这将会是一个代价很大的操作。按引用传递则不需要复制值,对于性能提高很有好处。


在PHP中error_reporting这个函数有什么作用?
设置 PHP的报错级别并返回当前级别。

抢购、秒杀是如今很常见的一个应用场景,主要需要解决的问题有两个:
1 高并发对数据库产生的压力
2 竞争状态下如何解决库存的正确减少("超卖"问题)

在PHP中,当前脚本的名称(不包括路径和查询字符串)记录在预定义变量__$_SERVER['PHP_SELF']__中;而链接到当前页面的URL记录在预定义变量__$_SERVER['HTTP_REFERER']__中
执行程序段<?php echo 8%(-2) ?>将输出__0__。
数组函数 arsort 的作用是__对数组进行逆向排序并保持索引关系__;语句 error_reporting(2047)的作用是__报告所有错误和警告__。

 

http get和post的区别?

1、get用于获取数据,post用于提交数据

2、get提交参数追加在url后面,post参数可以通过http header body提交

3、get传值一般在2KB以内,post传值大小可以在php.ini中max_post_size进行设置

4、get提交可以被浏览器缓存,post不会被浏览器缓存

 

HTTPS和HTTP的区别主要如下:

1、https协议需要到ca申请证书,一般免费证书较少,因而需要一定费用。
2、http是信息是明文传输,https则是具有安全性的ssl加密传输协议。
3、http和https使用的是完全不同的连接方式,用的端口也不一样,前者是80,后者是443。
4、http的连接很简单,是无状态的;HTTPS协议是由SSL+HTTP协议构建的可进行加密传输、身份认证的网络协议,比http协议安全。

 

如何不使用submit按钮来提交表单

1)ajax提交

2)可以用超链接来提交

3)js 方法提交$('form').submit();

 

2.ajax 中如何执行跨域访问?同子域的情况如何处理?不同子域的情况如何处理?

①jsonp,非官方协议,简单实用

通过JavaScript的callback方式调用,jQuery封装了jsonp方式的请求。

JSONP则是通过在文档中嵌入一个<script>标记来从另一个域中返回数据。例如在页面中添加一个如下的<script>标记:

<script src="http://localhost:2701/home/somejsonp?callback=jsonpcallback"/>

该<script>标记会发送一个GET请求。在数据(数据可以RSA加密)返回到客户端后,jsonpcallback()函数将会被调用。当然,这种方法拥有一个显著的缺点,那就是只支持GET操作

function jsonpcallback(json) {
    console.log(json)
}

②服务器响应头

header("Access-Control-Allow-Origin:*");

 

11、Print、echo、print_r有什么区别?

① echo和print都可以做输出,不同的是,echo不是函数,没有返回值,而print是一个函数有返回值,所以相对而言如果只是输出echo会更快,而print_r通常用于打印变量的相关信息,通常在调试中使用。

② print 是打印字符串

③ print_r 则是打印复合类型 如数组 对象

 

13.请介绍一下laravel框架?
答: laravel框架的设计思想比较先进,非常适合应用各种开发模式,作为一个框架,它为你准备好了一切,composer是php的未来,没有composer,php肯定要走向没落
laravel框架最大的特点和优秀之处就是集合了php比较新的特点,以及各种各样的设计模式,Ioc模式,依赖注入等

14.laravel有那些特点?
回答一:
1.强大的rest router:用简单的回调函数就可以调用,快速绑定controller和router
2.artisan:命令行工具,很多手动的工作都自动化
3.可继承的模板,简化view的开发和管理
4.blade模板:渲染速度更快
5.ORM操作数据库
6.migration:管理数据库和版本控制
7.测试功能也很强大
8.composer也是亮点

2.HTTP/1.0 中,状态码 200 301 304 403 404 500的含义

200 - 服务器成功返回网页
301(永久移动)请求的网页已永久移动到新位置。
304(未修改)自从上次请求后,请求的网页未修改过
403(禁止)服务器拒绝请求
404 - 请求的网页不存在
500 服务器内部错误
503 - 服务器超时

 session与cookie的区别?

1、Cookie只能保存字符串,Session可以存任意数据类型
2、Cookie存储在客户端浏览器中,Session存储在服务器上
3、session会在一定时间内保存在服务器上。当访问增多,影响服务器的性能。
4、单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

 

WebSocket  Socket  HTTP

socket是对TCP/IP协议的封装,Socket本身并不是协议,而是一个调用接口(API),通过Socket,我们才能使用TCP/IP协议

WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端

HTTP协议是建立在TCP协议之上的一种应用。HTTP连接最显著的特点是客户端发送的每次请求都需要服务器回送响应,在请求结束后,会主动释放连接。从建立连接到关闭连接的过程称为“一次连接”。

 

Include require include_once require_once 的区别.
require 失败时会产生一个致命级别错误,并停止程序运行。
include 失败时只产生一个警告级别错误,程序继续运行。

include_once/require_once和include/require 处理错误方式一样,
唯一区别在于当所包含的文件代码已经存在时候,不在包含。

编写一个自定义函数提取这段路径的的后缀名。“Www/hello/test.php.html?a=3&b=4”

function geturltype($url) {
    $info = parse_url($url);
    return end(explode('.', $info['path']));
}
 

6. 写几个魔术方法并说明作用?

1。__construct() 实例化对象时被调用,当__construct和以类名为函数名的函数同时存在时,__construct将被调用,另一个不被调用
2。__destruct() 当删除一个对象或对象操作终止时被调用。
3。__call() 对象调用某个方法,若方法存在,则直接调用;若不存在,则会去调用__call函数。
4。__get() 读取一个对象的属性时,若属性存在,则直接返回属性值;若不存在,则会调用__get函数。
5。__set() 设置一个对象的属性时,若属性存在,则直接赋值;若不存在,则会调用__set函数。
6。__toString() 打印一个对象的时被调用。如echo $obj;或print $obj;
7。__clone() 克隆对象时被调用。如:$t=new Test();$t1=clone $t;
8。__sleep() serialize之前被调用。若对象比较大,想删减一点东东再序列化,可考虑一下此函数。
9。__wakeup() unserialize时被调用,做些对象的初始化工作。
10。__isset() 检测一个对象的属性是否存在时被调用。如:isset($c->name)。
11。__unset() unset一个对象的属性时被调用。如:unset($c->name)。
12。__set_state() 调用var_export时,被调用。用__set_state的返回值做为var_export的返回值。
13。__autoload() 实例化一个对象时,如果对应的类不存在,则该方法被调用。

魔术常量
__LINE__ 返回文件中的当前行号。
__FILE__ 返回文件的完整路径和文件名。如果用在包含文件中,则返回包含文件名。自 PHP 4.0.2 起,__FILE__ 总是包含一个绝对路径,而在此之前的版本有时会包含一个相对路径。
__FUNCTION__ 返回函数名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该函数被定义时的名字(区分大小写)。在PHP 4 中该值总是小写字母的。
__CLasS__ 返回类的名称(PHP 4.3.0 新加)。自 PHP 5 起本常量返回该类被定义时的名字(区分大小写)。在PHP 4 中该值总是小写字母的。
__METHOD__ 返回类的方法名(PHP 5.0.0 新加)。返回该方法被定义时的名字(区分大小写)。
 
如何修改会话的生存时间
session.gc_maxlifetime = 1440

7、简述php的垃圾收集机制。
答案:php中的变量存储在变量容器zval中,zval中除了存储变量类型和值外,还有is_ref和refcount字段。refcount表示指向变量的元素个数,is_ref表示变量是否有别名。如果refcount为0时,就回收该变量容器。如果一个zval的refcount减1之后大于0,它就会进入垃圾缓冲区。当缓冲区达到最大值后,回收算法会循环遍历zval,判断其是否为垃圾,并进行释放处理。

<?php echo count(strlen("http://php.net")); ?>的执行结果是?
1
分布式session共享问题怎么解决
1)session存redis,mysql.memcache,用session_set_save_handler类
2)使用Nginx的ip_hash/sticky负载均衡策略
3)应用服务器间的session复制共享
某ID的一条记录在表中是第几条记录
SELECT COUNT(*) FROMWHERE ID<=ID的值
PHP获取客户端和服务器端IP
$_SERVER['REMOTE_ADDR'] 客户端IP,有可能是用户的IP,也可能是代理的IP。
$_SERVER['SERVER_ADDR'] 获取服务器端IP
  • 大小: 102.5 KB
分享到:
评论

相关推荐

    php面试试题及答案

    ### PHP面试常见问题与解答 #### 1. PHP预定义变量$_SERVER的应用 - **$_SERVER['PHP_SELF']**: 此变量存储当前脚本的文件名(不包括路径和查询字符串)。例如,如果你的脚本位于`/home/user/www/index.php`,并且...

    PHP程序员面试宝典 笔试 (PHP版).zip

    《PHP程序员面试宝典 笔试 (PHP版)》是一个为准备PHP程序员面试者精心编纂的资源包,其中包含了丰富的PHP技术知识和面试常见问题。这个压缩包中的核心文件是"PHP程序员面试宝典 笔试 (PHP版).pdf",它很可能是详细...

    读书笔记:PHP面试常见知识汇总php数据库网络算法等等.zip

    读书笔记:PHP面试常见知识汇总php数据库网络算法等等

    PHP新浪面试题,面试必看。

    根据给定的文件信息,以下是对“PHP新浪面试题”的知识点进行详细解析:...通过以上知识点的梳理,可以了解到 PHP 开发过程中的一些常见问题及其解决方案。这些知识不仅适用于面试准备,也是日常开发工作中必备的基础。

    php常见面试问题及答案

    #### 六、其他常见问题 **6.1 自动加载机制** 自动加载机制允许在需要使用某个类时自动加载其对应的文件,无需手动使用`require`或`include`语句。可以使用以下两种方法之一来实现: - 实现`__autoload()`函数...

    PHP程序员招聘中的常见面试题

    以下是从标题“PHP程序员招聘中的常见面试题”及部分描述中提炼出的关键知识点: ### 1. PHP连接数据库:`mysql_pconnect`与`mysql_connect` #### 知识点解析 - **`mysql_connect`**:这是一个建立到MySQL服务器...

    php面试常见简答题总结

    ### PHP面试常见简答题总结 #### Linux 命令及操作 **1. 尽可能多地写出你所熟悉的Linux命令** - **mkdir**: 用于创建一个或多个目录。 - `mkdir mydir`: 创建名为`mydir`的新目录。 - `mkdir -p mydir/subdir`...

    考试类精品--年php面试常见考点和答案.zip

    这份"考试类精品--年php面试常见考点和答案.zip"压缩包包含了历年PHP面试中的一些常见问题及其解答,旨在帮助求职者充分准备,提升通过面试的成功率。下面将对这些考点进行详细阐述: 1. **基础语法** - PHP的变量...

    新浪PHP面试题新浪PHP面试题

    【标题】"新浪PHP面试题"所涉及到的知识点主要涵盖了PHP编程语言在实际应用和面试中的常见问题。作为中国知名互联网公司新浪的面试题目,这些题目反映了新浪对PHP开发人员的技术要求和期望。 【描述】虽然描述部分...

    传智php面试宝典

    《传智PHP面试宝典》是一本专门为PHP开发者准备的面试指南,旨在帮助读者全面掌握PHP领域的核心知识,提升在面试中...通过深入学习和实践,你将能够更好地应对PHP面试中的各种挑战,展现你的技术实力和解决问题的能力。

    PHP面试题_php_

    以上都是PHP面试中常见的知识点,通过深入理解和熟练掌握这些内容,可以为面试者提供坚实的基础。同时,实际项目经验和解决问题的能力也是面试官关注的重点。对于提供的文档列表,如"面试题4.doc、面试题3.doc、笔试...

    php常见面试题

    以下是一些常见的PHP面试题及其解答: 1. PHP获取前一天时间的函数:可以使用`strtotime`结合`date`函数,如`date("Y-m-d H:i:s", strtotime("-1 day"))`,这将返回格式为"2006-5-10 22:21:21"的前一天时间。 2. `...

    php面试题及答案大全

    这份"php面试题及答案大全"提供了丰富的资源,帮助准备PHP面试的候选人强化自己的知识体系。本文将深入探讨这些面试题和答案所涵盖的重要PHP知识点。 首先,PHP是一种广泛用于Web开发的服务器端脚本语言,它的全称...

    php面试题大全

    让我们深入探讨一下这个主题,了解一些常见的PHP面试知识点。 1. **PHP基础** - PHP是什么?解释其全称(PHP:Hypertext Preprocessor)。 - PHP的特点和用途。 - PHP与HTML的区别。 - PHP脚本的执行流程。 - ...

    PHP程序员面试宝典1.zip

    在PHP面试中,了解基础语法是至关重要的。PHP是一种广泛应用于Web开发的服务器端脚本语言,其基础包括变量、数据类型、运算符、控制结构(如if-else、switch-case)、循环(for、while等)、函数以及数组等。深入...

    php非常变态的面试题

    本文总结了PHP面试中的常见题目,涵盖了优先级、static 变量、类型转换、count 函数、foreach 循环、reference 变量、浮点数概念、ini_set 函数、isset 函数、逻辑判断和赋值操作等多方面的知识点。 1. 优先级:PHP...

    php经典面试题

    ### PHP经典面试题解析 #### 题目一:时间格式化 ```php &lt;?php // 输出当前时间的一天前的时间 echo date("Y:m:d H:i:s", strtotime("-1 day")); ?&gt; ``` **解析:** 1. **函数说明**: - `date()`:用于格式化...

    DBA面试常见题目

    ### DBA面试常见知识点解析 #### 一、SQL调优类 **1. 列举几种表连接方式** - **Hash Join**: 当两个表的数据量都比较大时,Oracle 使用哈希算法来创建一个哈希表,然后通过查找哈希表来进行连接。 - **Merge ...

Global site tag (gtag.js) - Google Analytics