关闭

【PHP】面试题整理PHP部分

标签: php面试题
604人阅读 评论(0) 收藏 举报
分类:

PHP

语句include和require都能把另一个文件包含到当前文件中,它们的区别是?为了多次包含同一文件,可以用什么语句替代它们?

include引入不存在,会报warning
require引入不存在,会报fatal error
_once如果之前已经引用过,就不会重复引用,如果没有加_once,重复引用就会出现致命错误
include_once之前需要检查是否有引用,所以不如include效率高
规范编码下,推荐include

能够实现防止SQL注入的函数或方式?

mysql

  • 过滤输入和转义输出
  • mysql_real_escape_string( )
  • 使用支持参数化查询语句和占位符的数据库操作类(如PEAR::DB, PDO等)
  • magic_quotes_gpc选项打开
  • PDO
  • MYSQLi

哪些方式能将网页上的图片(http://xxxx.com/xx.jpg)保存到本地电脑硬盘?

ob

ob_start();//打开输出
 readfile($url);//输出图片文件
 $img = ob_get_contents();//得到浏览器输出
 ob_end_clean();//清除输出并关闭
 $size = strlen($img);//得到图片大小
 $fp2 = @fopen($filename, "a");
 fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名
 fclose($fp2);
 return $filename;//返回新的文件名

file_get_contents

$img = file_get_contents('http://www.baidu.com/img/baidu_logo.gif'); 
file_put_contents('1.gif',$img); 
echo '<img src="1.gif">';

下面代码的输出结果(static的理解)?

<?php

function add()
{

    static $num =1;
    $num ++;
    return $num ;
}

$a = add() + add() + add() ;
echo $a;

结果是9。
2 + 3 + 4 = 9
静态变量。

代码实现,交换$a$b的值,不引用第三方变量。


//字符串版本 结合使用substr,strlen两个方法实现
$a="a";
$b="b";
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
$a.=$b;
$b=substr($a,0,(strlen($a)-strlen($b)));
$a=substr($a, strlen($b));
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//字符串版本 使用str_replace方法实现
$a="a";
$b="b";
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
$a.=$b;
$b=str_replace($b, "", $a);
$a=str_replace($b, "", $a);
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//字符串版本 结合使用list方法和array实现
$a="a";
$b="b";
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
list($b,$a)=array($a,$b);
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//字符串和数字都适用 使用异或运算
$a='a';
$b='b';
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
$a=$a^$b;
$b=$b^$a;
$a=$a^$b;
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

echo '-----------------------<br/>';

//只适用于数字
$a=3;
$b=5;
echo '交换前 $a:'.$a.',$b:'.$b.'<br />';
$a=$a+$b;
$b=$a-$b;
$a=$a-$b;
echo '交换后$a:'.$a.',$b:'.$b.'<br />';

写一个类,实现单例

单例模式有以下3个特点:
1.只能有一个实例。
2.必须自行创建这个实例。
3.必须给其他对象提供这一实例。

class C
{
    protected static $_instance = null;
    protected function __construct()
    {
    }
    protected function __clone()
    {
        //disallow clone
    }
    public function getInstance()
    {
        if (static::$_instance === null) {
            static::$_instance = new static;
        }
        return static::$_instance;
    } 
}
class D extends C
{
    protected static $_instance = null;
}
$c = C::getInstance();
$d = D::getInstance();
var_dump($c === $d);

写一段代码,实现打印/var/www/html的目录结构

    $current_dir = opendir($path);    //opendir()返回一个目录句柄,失败返回false
    while(($file = readdir($current_dir)) !== false) {    //readdir()返回打开目录句柄中的一个条目
        $sub_dir = $path . DIRECTORY_SEPARATOR . $file;    //构建子目录路径
        if($file == '.' || $file == '..') {
            continue;
        }else if(is_dir($sub_dir)) {    //如果是目录,进行递归
            echo 'Directory ' . $file . ':
';  //如果是文件夹,输出文件夹名称
            traverse($sub_dir); //嵌套遍历子文件夹
        }else{    //如果是文件,直接输出路径和文件名
           echo 'File in Directory ' . $path . '/' . $file .'
';
        }
    }
}
0
0
查看评论

PHP中级程序员常见面试题

写一个函数,尽可能高效的,从一个标准url里取出文件的扩展名例如: http://www.test.com.cn/abc/de/fg.php?id=1需要取出php或.php 答: 1、$a="http://www.test.com.cn/abc/de/fg.php?id=1"...
  • mybluesky1983
  • mybluesky1983
  • 2016-06-18 17:24
  • 2895

php面试题和答案整理

<br />1.以下哪一句不会把 John 新增到 users 阵列?<br />$users[] =  ‘john’;<br />成功把 John 新增到阵列 users。<br />array_add($users,’john’...
  • zl8762385
  • zl8762385
  • 2010-08-26 13:02
  • 960

php面试题之一——PHP核心技术(高级部分)

一、PHP核心技术 1.写出一个能创建多级目录的PHP函数(新浪网技术部) /** * 创建多级目录 * @param $path string 要创建的目录 * @param $mode int 创建目录的模式,在windows下可忽略 *...
  • s1070
  • s1070
  • 2016-04-17 19:22
  • 18137

php面试题之四——Linux部分(高级部分)

1.请解释下列10个shell命令的用途(新浪网技术部) top、ps、mv、find、df、cat、chmod、chgrp、grep、wc top:该命令提供了实时对系统处理器状态的监控,它能够实时显示系统中各个进程的资源占用情况。该命令可以按照对CPU、内存使用和执行时间对系统任务进...
  • s1070
  • s1070
  • 2016-04-17 19:13
  • 1445

php 常用数组操作整理

概述 要访问一个变量的内容,可以直接使用其名称。如果该变量是一个数组,可以使用变量名称和关键字或索引的组合来访问其内容。 像其他变量一样,使用运算符=可以改变数组元素的内容。数组单元可以通过 array[key] 语法来访问。 php定义函数: <?php $...
  • a_haoGG
  • a_haoGG
  • 2017-06-10 16:34
  • 206

php面试题之三——PHP网络编程(高级部分)

三、PHP网络编程 [!!!]1.禁用COOKIE后SEESION还能用吗?(51.com笔试题) 可以,COOKIE和SESSION都是用来实现会话机制的,由于http协议是无状态的,所以要想跟踪一个用户在同一个网站之间不同页面的状态,需要有这么一个机制----会话机制。 COOKI...
  • s1070
  • s1070
  • 2016-04-17 19:26
  • 2332

php常见的面试题目

一. 基本知识点 1.1 HTTP协议中几个状态码的含义:503 500 401 403 404 200 301 302。。。 200 : 请求成功,请求的数据随之返回。 301 : 永久性重定向。 302 : 暂时行重定向。 401 : 当前请求需要用户验证。 403 : 服务器拒绝执...
  • haiqiao_2010
  • haiqiao_2010
  • 2014-04-30 15:38
  • 19578

【总结】PHP常见面试题汇总(一)。。。

/** * 第1题:用PHP打印出前一天的时间格式,如:"2015-01-21 14:42:09" */ echo date("Y-m-d H:i:s",strtotime("-1 day")).""; /** ...
  • yanhui_wei
  • yanhui_wei
  • 2015-01-22 18:18
  • 13490

PHP高级工程师的面试题

1. 基本知识点 HTTP协议中几个状态码的含义:1xx(临时响应) Php代码   表示临时响应并需要请求者继续执行操作的状态代码。      代码   说明 &#...
  • jt521xlg
  • jt521xlg
  • 2015-08-19 11:28
  • 7364

PHP新浪面试题及完整答案

闲来无聊找了一套新浪PHP笔试题,在有手册的情况下完成的,欢迎拍砖,砖不够我给你搬。。。真的,新手求指教,欢迎留言! 1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名   例如: http://www.phpddt.co...
  • baikeliang
  • baikeliang
  • 2016-02-04 22:10
  • 2036
    个人资料
    • 访问:640806次
    • 积分:9031
    • 等级:
    • 排名:第2476名
    • 原创:297篇
    • 转载:13篇
    • 译文:4篇
    • 评论:81条
    博客专栏
    微信订阅号
    欢迎加入QQ群
    玩家老黄历(微信小程序)
    谢谢支持~
    最新评论