2018php最详细面试题一,2018php全新面试题之PHP核心技术

a222896eecb33576e5b497315b8c8b07.png

PHP语言多年来一直备受欢迎,PHP程序员在面试时会遇到哪些技术含量比较高的面试题呢?本文合肥PHP培训带大家简单了解几个PHP核心技术面试题。

1.如果我的网站用的utf-8编码,为防止乱码出现,都需要注意哪些地方?

从以下几个方面考虑:

数据库中库和表都用utf8编码

php连接mysql,指定数据库编码为utf8 mysql_query(“set names utf8”);

php文件指定头部编码为utf-8header(“content-type:text/html;charset=utf-8”);

网站下所有文件的编码为utf8

html文件指定编码为utf-8

2.在url中用get传值的时候,若中文出现乱码,应该用哪个函数对中文进行编码?

urlencode()

3.写出两种对变量加密的函数?

md5(str);

4.如何把2009-9-2 10:30:25变成unix时间戳?

date_default_timezone_set("PRC");

//将字符串转成Unix时间戳

$unix_time = strtotime("2009-9-2 10:30:45");

echo $unix_time;

echo "

";

//格式化Unix时间戳为正常时间格式

echo date("Y-m-d H:i:s",$unix_time);

?>

5.如何把一个GB2312格式的字符串装换成UTF-8格式?

iconv('GB2312','UTF-8','悄悄是别离的笙箫');

?>

6.如果需要原样输出用户输入的内容,在数据入库前,要用哪个函数处理?

htmlspecialchars或者htmlentities

7.写出五种以上你使用过的PHP的扩展的名称(提示:常用的PHP扩展)

mb_sring、iconv、curl、GD、XML、socket、MySQL、PDO等

8.了解MVC模式吗?请写出三种以上目前PHP流行的MVC框架名称(不区分大小写)

FleaPHP、Zend Framework、CakePHP、Symfony、ThinkPHP、YII、CodeIgniter等

9.php中WEB上传文件的原理是什么,如何限制上传文件的大小?

上传文件的表单使用post方式,并且要在form中添加enctype='multipart/form-data'。

一般可以加上隐藏域:,位置在file域前面。

value的值是上传文件的客户端字节限制。可以避免用户在花时间等待上传大文件之后才发现文件过大上传失败的麻烦。

使用file文件域来选择要上传的文件,当点击提交按钮之后,文件会被上传到服务器中的临时目录,在脚本运行结束时会被销毁,所以应该在脚本结束之前,将其移动到服务器上的某个目录下,可以通过函数move_uploaded_file()来移动临时文件,要获取临时文件的信息,使用$_FILES。

限制上传文件大小的因素有:

客户端的隐藏域MAX_FILE_SIZE的数值(可以被绕开)。

服务器端的upload_max_filesize,post_max_size和memory_limit。这几项不能够用脚本来设置。

自定义文件大小限制逻辑。即使服务器的限制是能自己决定,也会有需要个别考虑的情况。所以这个限制方式经常是必要的。

10.简述UBB code的实现原理。(YG)

UBB代码是HTML的一个变种,通过程序自定义我们的标签,比如“[a]PHP中UBB的使用[/a]”这样的标签,其实质就是查找[a][/a]标签,将其替换成的标准html,说白了,就是将标准的html标记通过技术手段使其简化,其输出出来的结果还是标准的html。

明白了ubb的原理,那么再制作一个简单的ubb编辑器就不难了,和fck之类的编辑器比较起来,ubb代码最大的优点就是代码简单,功能很少,简单的ubb只需要一个文件,而且ubb标签可以自己来定义,更改起来很方便,在php中就是利用替换函数就可以将

html进行标签化,输出时进行标签的转化。

11.怎么把文件保存到指定目录?怎么避免上传文件重名问题?

可以自己设置上传文件的保存目录,与文件名拼凑形成一个文件路径,使用move_uploaded_file(),就可以完成将文件保存到指定目录。

可以通过上传的文件名获取到文件后缀,然后使用时间戳+随机数+文件后缀的方式为文件重新命名,这样就避免了重名。

12._____函数能返回脚本里的任意行中调用的函数的名称。该函数同时还经常被用在调试中,用来判断错误是如何发生的。(奇矩互动)

debug_print_backtrace()

13.在Smarty模板语法中怎么能遍历数组ids

{section name=temp loop=$ids}

{if $ids[temp].id==500}

{$ids[temp].id}

{esle}

{$ids[temp].id}

{/if}

{/section}

14.在Smarty模板语法中如何获取当前时间,并且使用Y-m-d H:i:s的格式输出?(亿邮)

使用{$smarty.now}来获取当前时间,得到的是unix系统时间戳

使用变量调节器进行格式化,如下:

{$smarty.now|date_format:“%Y-%m-%d%H:%M:%S”}

15.在Smarty模板语法中如何获取php的全局环境变量(亿邮)

$smarty.get.变量#显示通过get方式传过来的指定变量的值

$smarty.post.变量#显示通过post方式传过来的指定变量的值

$smarty.cookies.变量#显示通过cookie中指定变量的值

$smarty.server.SERVER_NAME #显示server变量值,$_SERVER系列变量

$smarty.env.PATH #显示系统环境变量值,$_ENV系列变量

$smarty.session.变量#显示session中指定变量的值

$smarty.request.变量#显示通过post、get、cookie中指定变量的值

55.在Smarty模板中如何用自定义函数(亿邮)

使用模板分隔符包含,传递参数则使用HTML属性的方式,例如:

{html_image file="pumpkin.jpg"}

16.列举出你所知道的php系统函数库例如,数学函数库(亿邮)

mysql,gd,pdo,XML,zip,filesystem,mail等

17.假如让你来写一个函数实现Utf-8转gb2312,那么函数的名称应该怎么命名?(亿邮)

utf8_to_gb2312或者utf8togb2312

18.请描述如下URL重写规则的用意。(卓望)

RewriteEngineon

RewriteCond%{REQUEST_FILENAME}!-f

RewriteCond%{REQUEST_FILENAME}!-d

RewriteBase/

RewriteRule./index.php[L]

如果REQUEST_FILENAME文件存在,就直接访问文件,不进行下面的rewrite规则,

如果REQUEST_FILENAME目录存在,就直接访问目录,不进行下面的rewrite规则,

RewriteRule./index.php[L]的意思是把所有的请求都给index.php处理。

19.Warning:Cannot modify header information-headers already sent

by(output started at D:\src\init.php:7)in D:\src\init.php on line10通常什么情况下php会报该警告信息?(卓望)

一般是在header、set_cookie以及session_start函数前面有输出(包括空格)的情况下,会报该警告信息

以上就是2018php全新面试题之PHP核心技术的详细内容,想学php的同学。在线留言合肥达内PHP培训官网客服,获取免费试听课程,刚有课程大礼包等你来拿。

*版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,推送文章除非无法确认,我们都会注明作者和来源。如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值