11道php面试题
贡献11道php面试题及解决方法,跟大家总结一下曾经遇到的部分面试题。希望可以给大家得到帮助。
1、 什么事面向对象?主要特征是什么?
面象对象是把自然界的物体和概念直接映射到程序界的一种比较优雅的手段
主要特征:继承、封装、多态
2、有一个网页地址, 比如PHP开发资源网主页: http://www.phpres.com/index.html,如何得到它的内容?($1分)
答:方法1(对于PHP5及更高版本):
$readcontents = fopen("http://www.phpres.com/index.html", "rb");
$contents = stream_get_contents($readcontents);
fclose($readcontents);
echo $contents;
方法2:
echo file_get_contents("http://www.phpres.com/index.html");
3、使用五种以上方式获取一个文件的扩展名
要求:dir/upload.image.jpg,找出 .jpg 或者 jpg ,
必须使用PHP自带的处理函数进行处理,方法不能明显重复,可以封装成函数,比如 get_ext1($file_name), get_ext2($file_name)
<?php
function get_ext1($file_name){
return strrchr($file_name, '.');
}
function get_ext2($file_name){
return substr($file_name, strrpos($file_name, '.'));
}
function get_ext3($file_name){
return array_pop(explode('.', $file_name));
}
function get_ext4($file_name){
$p = pathinfo($file_name);
return $p['extension'];
}
function get_ext5($file_name){
return strrev(substr(strrev($file_name), 0, strpos(strrev($file_name), '.')));
} ?>
4 、写出以下程序的输出结果
<?php
$str=“cd”;
$$str=“hotdog”;
$$str.=“ok”;
echo $cd;
?>
答案:hotdogok
5 、给你三个数,写程序求出其最大值。
<?php
$var1=1;
$var2=7;
$var3=8;
$max=$var1>$var2?$var1:$var2;
$max=$max>$var3?$max:$var3;
echo $max;
?>
6 、foo() 与 @foo() 有什么分别?
foo() 会执行这个函式,任何解译错误、语法错误、执行错误都会在页面上显示出来。
@foo() 在执行这个函式时,会隐藏所有上述的错误讯息。
很多应用程式都使用 @mysql_connect() 和 @mysql_query 来隐藏 mysql 的错误讯息,我认为这是很严重的失误,因为错误不该被隐藏,你必须妥善处理它们,可能的话解决它们。
7 、写一个删除指定目录及目录里文件的函数。
<?php
header("content-type:text/html;charset=gbk");
/**
*删除指定目录()删除子目录和文件
*@path 文件目录路径 string
*@return void
*/
function removepath($path){
//1:判断删除目录是否存在
if(!file_exists($path)){
return false;
}
//2:将目录内容全部获取出
$list = scandir($path);
//3:遍历目录
foreach($list as $f){
//4:将 . .. 排除在外
if($f != '.' && $f != '..'){
//5:如果内容文件 unlink
if(is_file($path."/".$f)){
unlink($path.".".$f);
}else{
//6:目录 递归
removepath($path."/".$f);
}
}
}//foreach end
//7:循环外删除目录!!
rmdir($path);
} ?>
8 、写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
<?php
header('content-type:text/html;charset=gbk');
/*
* 遍历一个指定目录()包括子目录和文件
* @param string $path 指定目录名称
* @return viod
*/
class dir{
function upl($path){
//判断处理的目录是否存在 不存在 return false;
if(!file_exists($path)){
return false;
}
//列出当前目录内容
$list=scandir($path);
foreach($list as $f){
//去除 . ..
if($f!='.'&&$f!='..'){
//判断是否是一个目录【$path.'/'.$f】
if(is_dir($path."/".$f)){
//输出
echo $path."/".$f."<br />";
//递归调用自己
$this->upl($path."/".$f);
}else{
//如果文件存在输出
echo $path."/".$f."<br />";
}
}//if end }//foreach end
}
}
$a=new dir();
$a->upl("D:/www/fenghuo/application"); ?>
9 、将下列字符串中大写字母转小写,小字母转转大写后输出。$str = "0198abIcA37";
<?php
$str = "0198abIcA37";
$temp = ""; //1:循环所有字符获取
$size = strlen($str);
for($i = 0;$i < $size;$i++){
if($str{$i} >= 'a' && $str{$i} <= 'z'){
//小写
$temp .= strtoupper($str{$i});
}else if($str{$i} >= 'A' && $str{$i} <= 'Z'){
//大写
$temp .= strtolower($str{$i});
}else{
//数字
$temp .= $str{$i};
}
}//for echo "原有字符串 {$str}<br />";
echo "转换后字符串 {$temp}<br />";
?>
10 、有个数组,请把数组里面的数进行排序。
$array = array(1,35,-90,110,9879,-1256,908);
<?php
//冒泡排序(数组排序)
function bubble_sort($array)
{
$count = count($array);
if ($count <= 0) return false;
for($i=0; $i<$count; $i++){
for($j=$count-1; $j>$i; $j--){
if ($array[$j] < $array[$j-1]){
$tmp = $array[$j];
$array[$j] = $array[$j-1];
$array[$j-1] = $tmp;
}
}
}
return $array;
} ?>
11、正则表达式
1.用php基本函数及正则,将以下字符串中出现的所有手机号码,中间4位全部替换’****’,然后再打印出来,如:13712345678转变为137****5678再进行打印
以下是本期炒股大赛中奖用户:
李先生:13712123434
杨小姐:15956568787
张先生:0571-66778899
王先生:15068115269
请以上中奖用户尽快联系客服专线:0571-88912222-112
2.写一个通用的正则表达式,可以匹配下面任何一个字符串
1)010-87885266
2)0571-85607788
3)057185607788
答:1.
<?php
$str = "";
$str="以下是本期炒股大赛中奖用户 李先生:13712123434 杨小姐:15956568787张先生0571-45454645";
$pat="/[^\d-]+/";
$arr=preg_split($pat,$str);
for($i=1;$i<count($arr);$i++){
if(!preg_match("/-/",$arr[$i])){
$str=substr_replace($arr[$i],'****',3,4);
}else{
$str=substr_replace($arr[$i],'****',5,4);
}
echo $str.'|';
} ?>
答:2.
<?php $str="010-87885266";
$str="0571-85607788";
$str="057185607788";
$rs=preg_match("/^(0\d{2,3})(-)?\d{8}/",$str);
if($rs){
echo '匹配成功';
}
?>
11道php面试题的更多相关文章
- [ZZ]知名互联网公司Python的16道经典面试题及答案
知名互联网公司Python的16道经典面试题及答案 https://mp.weixin.qq.com/s/To0kYQk6ivYL1Lr8aGlEUw 知名互联网公司Python的16道经典面试题及答 ...
- MySql_34道经典Sql试题
MySql_34道经典Sql试题 版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xiaouncle/article/details/799390 ...
- 【笔试题】精选30道Java笔试题解答
转自于:精选30道Java笔试题解答 精选30道Java笔试题解答 1. 下面哪些是Thread类的方法() A. start() B. run() C. exit() D. getPriority( ...
- 精选30道Java笔试题附答案分析
精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑 ...
- 面试百度、阿里、腾讯,这134道Java面试题你会多少?
这里一共是134道Java面试题,看看你能对几道吧! 1. Java 语言有哪些特点 2. 面向对象和面向过程的区别 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 4. Oracle JD ...
- 解析“60k”大佬的19道C#面试题(下)
解析"60k"大佬的19道C#面试题(下) 在上篇中,我解析了前 10 道题目,本篇我将尝试解析后面剩下的所有题目. 姐妹篇:解析"60k"大佬的19道C#面试 ...
- Python 30道高频面试题及详细解答
开学啦,开学啦!周末坐地铁的时候看到很多同学推着行李箱,拎着大包小包的穿梭在人群中,哎新的一学期又开始啦,同时也意味着很多同学要准备毕业啦,尤其是准大四,准研三的同学. 今年的招聘行情并不乐观,小公司 ...
- 「剑指offer」27道Mybatis面试题含解析
1.什么是Mybatis? Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement等繁杂 ...
- 你应该知道的25道Javascript面试题
题目来自 25 Essential JavaScript Interview Questions.闲来无事,正好切一下. 一 What is a potential pitfall with usin ...
随机推荐
- ASP.NET MVC 学习6、学习使用Code First Migrations功能,把Model的更新同步到DB中
参考:http://www.asp.net/mvc/tutorials/mvc-4/getting-started-with-aspnet-mvc4/adding-a-new-field-to-th ...
- CodeForces Round #278 (Div.2) (待续)
A 这么简单的题直接贴代码好了. #include <cstdio> #include <cmath> using namespace std; bool islucky(in ...
- Xcode中如何启用或禁用某些文件的ARC
经常会有工程中涉及到第三方的代码, 但这些代码有的是ARC的, 有的不是. 这样的话, 在与你的工程中集成的时候就会出现问题. 如果你的工程是开启ARC的, 那就需要对某些文件禁用ARC, (-fno ...
- 【ASP.NET】编程点滴 :ASP.NET身份验证
ASP.NET实际开发中身份验证 是一个不可回避的问题.在相当一段长的时间内,由于不求甚解,我对这个话题似懂非懂.今天就对它做个简单的小结. Authentication and Authorizat ...
- 【转】VS2012编译出来的程序,在XP上运行,出现“.exe 不是有效的 win32 应用程序” “not a valid win32 application”
原文网址:http://www.cnblogs.com/Dageking/archive/2013/05/15/3079394.html VS2012编译出来的程序,在XP上运行,出现“.exe 不是 ...
- 【转】Android Studio简单设置
原文网址:http://ask.android-studio.org/?/article/14 Android Studio 简单设置 界面设置 默认的 Android Studio 为灰色界面,可以 ...
- js把div固定在页面的右下角
在公司做材料系统中,需要做一个总是居于右下角的div,但是因为右边这部分本就是用iframe做的,所以是不好弄的. 一开始,以为用position:fixed,一句css就可以完成,结果在iframe ...
- 利用反射自动生成SQL语句(仿Linq)
转:http://www.cnblogs.com/the7stroke/archive/2012/04/22/2465597.html using System; using System.Colle ...
- 构建属于自己的ORM框架之二--IQueryable的奥秘
上篇文章标题乱起,被吐槽了,这次学乖了. 上篇文章中介绍了如何解析Expression生成对应的SQL语句,以及IQueryable的一些概念,以及我们所搭建的框架的思想等.但还没把它们结合并应用起来 ...
- spoj 694(后缀数组)
题意:求一个字符串的不重复子串的个数. 分析:对于下标为i的位置,能够产生的前缀子串个数为len-i(下标从0开始),对于与它字典序相邻的后缀产生的子串是重复的(就是他们的最长公共前缀),所以我们要减 ...