贡献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. 对象不支持“attachEvent”属性或方法的解决办法

    有些脚本在IE11下执行会报错误: 对象不支持“attachEvent”属性或方法 解决办法 解决办法:把attachEvent改为addEventListener即可

  2. 真正解决ASP.NET每一个页面首次访问超级慢的问题 (转载)

    原文:http://www.afuhao.com/article_articleId-219.shtml 摘要:ASP.NET页面首次打开很慢,但别的页面如果没有访问过,去访问也会慢.你也许认为它是在 ...

  3. UVa 11174 (乘法逆元) Stand in a Line

    题意: 有n个人排队,要求每个人不能排在自己父亲的前面(如果有的话),求所有的排队方案数模1e9+7的值. 分析: <训练指南>上分析得挺清楚的,把公式贴一下吧: 设f(i)为以i为根节点 ...

  4. Share SDK分享

    import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os. ...

  5. ios tweak之binary not signed (use ldid -S)问题解决

    参考tweak教程写了个简单的tweak,无奈完全无效果,摸索了好长时间才找到方法: 打开terminal ssh root@192.168.1.100 vim /var/log/syslog 找到如 ...

  6. unicode string和ansi string的转换函数及获取程序运行路径的代码

    #pragma once#include <string> namespace stds { class tool { public: std::string ws2s(const std ...

  7. cocos2d-x 滚动文字(二)

    http://blog.csdn.net/kuovane/article/details/8131789 首先送上demo,下载地址为:demo下载地址 一,怎么在文字前面空两隔?只需在xml里的文字 ...

  8. 【MySQL for Mac】终极解决——MySQL在Mac的字符集设置

    这个问题烦恼一天了,现在终于得以解决.分享给大家 首先贴出来,亲测不可行的博客连接: http://www.2cto.com/database/201305/215563.html http://bl ...

  9. 使用solrj操作solr索引库

    (solrj)初次使用solr的开发人员总是很郁闷,不知道如何去操作solr索引库,以为只能用<五分钟solr4.5教程(搭建.运行)>中讲到的用xml文件的形式提交数据到索引库,其实没有 ...

  10. IOS 正则表达式匹配文本中URL位置并获取URL所在位置(解决连接中文问题)

    需求很简单,是从一段文本中匹配出其中的超链接.基本的做法就是用正则表达式去匹配.但是有这样一个问题. 网上大部分的识别URL的正则表达式url末尾有空格的情况下可以正确识别.比如这样的情况. 我是一段 ...