贡献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面试题的更多相关文章

  1. [ZZ]知名互联网公司Python的16道经典面试题及答案

    知名互联网公司Python的16道经典面试题及答案 https://mp.weixin.qq.com/s/To0kYQk6ivYL1Lr8aGlEUw 知名互联网公司Python的16道经典面试题及答 ...

  2. MySql_34道经典Sql试题

    MySql_34道经典Sql试题   版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/xiaouncle/article/details/799390 ...

  3. 【笔试题】精选30道Java笔试题解答

    转自于:精选30道Java笔试题解答 精选30道Java笔试题解答 1. 下面哪些是Thread类的方法() A. start() B. run() C. exit() D. getPriority( ...

  4. 精选30道Java笔试题附答案分析

    精选30道Java笔试题解答 都是一些非常非常基础的题,是我最近参加各大IT公司笔试后靠记忆记下来的,经过整理献给与我一样参加各大IT校园招聘的同学们,纯考Java基础功底,老手们就不用进来了,免得笑 ...

  5. 面试百度、阿里、腾讯,这134道Java面试题你会多少?

    这里一共是134道Java面试题,看看你能对几道吧! 1. Java 语言有哪些特点 2. 面向对象和面向过程的区别 3. 关于 JVM JDK 和 JRE 最详细通俗的解答 4. Oracle JD ...

  6. 解析“60k”大佬的19道C#面试题(下)

    解析"60k"大佬的19道C#面试题(下) 在上篇中,我解析了前 10 道题目,本篇我将尝试解析后面剩下的所有题目. 姐妹篇:解析"60k"大佬的19道C#面试 ...

  7. Python 30道高频面试题及详细解答

    开学啦,开学啦!周末坐地铁的时候看到很多同学推着行李箱,拎着大包小包的穿梭在人群中,哎新的一学期又开始啦,同时也意味着很多同学要准备毕业啦,尤其是准大四,准研三的同学. 今年的招聘行情并不乐观,小公司 ...

  8. 「剑指offer」27道Mybatis面试题含解析

    1.什么是Mybatis? Mybatis是一个半ORM(对象关系映射)框架,它内部封装了JDBC,开发时只需要关注SQL语句本身,不需要花费精力去处理加载驱动.创建连接.创建statement等繁杂 ...

  9. 你应该知道的25道Javascript面试题

    题目来自 25 Essential JavaScript Interview Questions.闲来无事,正好切一下. 一 What is a potential pitfall with usin ...

随机推荐

  1. 获取Android 手机屏幕宽度和高度以及获取Android手机序列号

    1.获取Android 手机屏幕宽度 1 DisplayMetrics dm = new DisplayMetrics(); 2 this.getWindowManager().getDefaultD ...

  2. bzoj1266: [AHOI2006]上学路线route

    最短路+最小割 首先如何使最短路变长?就是要每一条最短路都割一条边. 我们求出每个点到点1和点n的距离,就可以知道哪些边在最短路上(一开始没有想到求到0和n的距离,想用floyd,但是n=500,怕超 ...

  3. 自己遇到的Android虚拟机出现的错误及解决方法【不断更新】

    2012.11.9 第一个: [2012-11-09 13:15:14 - Tesa] Android Launch! [2012-11-09 13:15:14 - Tesa] The connect ...

  4. Dialog第三方登录等待

    1. styles.xml 中加入 <style name="loadingDialogStyle" parent="android:Theme.Dialog&qu ...

  5. I.MX6 默认打开 USB adb

    /***************************************************************************** * I.MX6 默认打开 USB adb ...

  6. MySQL操作备忘录

    在mysql包中,mysqld是数据库服务器,mysql是客户端,mysqladmin则用于管理数据库服务器的信息,如用户密码等. 关于安装: 1.在d:/sftwr/mysql/bin目录下: my ...

  7. .NET之美——C# 中的委托和事件

    C# 中的委托和事件 文中代码在VS2005下通过,由于VS2003(.Net Framework 1.1)不支持隐式的委托变量,所以如果在一个接受委托类型的位置直接赋予方法名,在VS2003下会报错 ...

  8. hdu 1024(最大和连续子序列增强版)

    题意:最大和连续子序列的增强版,要求从一序列中取出若干段,这些段之间不能交叉,使得和最大并输出. 分析:用dp[i][j]表示前j个数取出i段得到的最大值,那么状态转移方程为dp[i][j]=max( ...

  9. Android的SoundPool

    开发Android软件中我们可能经常需播放多媒体声音文件,一般使用MediaPlayer类但该类占用资源较多,对于游戏等应用可能不是很适合,SoundPool类在SDK的android.media.S ...

  10. Partitioning by Palindromes

    题意: 给定一个字符串,求能分成最小几个回文串 分析:简单dp dp[i]前i个字符能分成的最小数量 dp[i]=min(dp[i],dp[j-1]+1) (j-i 是回文串) #include &l ...