贡献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. POJ 1088 滑雪【记忆化搜索】

    题意:给出一个二维矩阵,要求从其中的一点出发,并且当前点的值总是比下一点的值大,求最长路径 记忆化搜索,首先将d数组初始化为0,该点能够到达的路径长度保存在d数组中,同时把因为路径是非负的,所以如果已 ...

  2. oracle 11g rac 无法自动启动

    如果以上的操作依然不能使数据库资源自动启动,那么参考下面这篇文章修改资源AUTO_START属性. 查看资源状态: crsctl status resource 资源       -p     crs ...

  3. acdream 1408 "Money, Money, Money" (水)

    题意:给出一个自然数x,要求找两个自然数a和b,任意多个a和b的组合都不能等于x,且要可以组合成大于x的任何自然数.如果找不到就输出两个0.(输出任意一个满足条件的答案) 思路:x=偶数时,无法构成, ...

  4. apache开源项目 -- VXQuery

    Apache VXQuery 是一个兼容标准的 XML 查询处理器的实现.主要适合非常大量的 XML 数据处理. 参考: http://www.apache.org/

  5. Java [Leetcode 202]Happy Number

    题目描述: Write an algorithm to determine if a number is "happy". A happy number is a number d ...

  6. 关于Android Studio升级到2.0后和Gradle插件不兼容的问题

    今天升级AS到2.0后,用AS在真机上调试,发现报了如下错误: This version of Android Studio is incompatible with the Gradle Plugi ...

  7. AngularJS:实现动态添加输入控件功能(转)

    http://www.cnblogs.com/ilovewindy/p/3849428.html <!DOCTYPE html> <html> <head> < ...

  8. [Everyday Mathematics]20150112

    设 $f\in C[0,1]$ 适合 $$\bex \int_x^1 f(t)\rd t\geq \frac{1-x^2}{2},\quad \forall\ x\in [0,1]. \eex$$ 试 ...

  9. ylbtech-Model-Account(通用账户模块设计)

    ylbtech-DatabaseDesgin:ylbtech-Model-Account(通用账户模块设计) ylbtech-Model-Account(通用账户模块设计) 1.A,数据库关系图(Da ...

  10. web自动化框架之四测试报告的搭建

    现状: 看过前面的文章,楼主用的是python,所以在搭建测试报告这块的时候使用的是unittest+htmlTestRunner:然后发现生成出来的报告,总是有那么不完美的地方,比如想增加图片,比如 ...