栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > PHP面试题库

PHP编码面试题(编程带答案)

PHP编码面试题(编程带答案)

编写一个php函数计算两个文件的相对路径

function getRelativePath($fileA, $fileB) {    $arrA = explode("/", $fileA);     $arrB = explode("/", $fileB);     array_pop($arrA);    array_pop($arrB);    $offset = 0;    foreach($arrB as $key => $value) {        if(!isset($arrA[$key]) || ($arrA[$key] != $arrB[$key])) { $offset = $key; break;        }    }    $relativePath = '';    for($i = $offset; $i <count($arrB); $i++) {        $relativePath .= '../';     }    for($i=$offset; $i<count($arrA); $i++) {         $relativePath .= $arrA[$i].'/';    }    return $relativePath; }

用 PHP 打印出前一天的时间,格式是 2015-05-20 22:21:21

echo date('Y-m-d H:i:s', date('U')-86400);echo date('Y-m-d H:i:s', time()-86400);echo date('Y-m-d H:i:s', strtotime('-1 day'));

不使用第三个变量,交换变量 a、b 的值

list($a, $b) = array($b, $a);

写出单例模式和工厂模式的程序片段,并列出其中的注意点

class Single {    static $instance;    private function __construct() {    }    private function __clone() {    }    public static function getInstance() {        if (! (self::$instance instanceof self)) { self::$instance = new self();        }        return self::$instance;    }}class Factory {    public static function create($className) {        $classFile = "./library/{$className}.class.php";        if (! class_exists($className) && file_exists($classFile)) { require $classFile;        }        return new $className();    }}

用代码写出获取 url 文件后缀的方法,如 http://www.baidu.com/foo/bar.php?id=value 中.php 的值

$url = 'http://www.baidu.com/foo/bar.php?id=value';$path = parse_url($url, PHP_URL_PATH);$ext = pathinfo($path, PATHINFO_EXTENSION);

用 php 写出获取中位数的方法

$numList = array(    1,     4,     3,     2,     5,     8,     7,     6,     9);// 先排序$numList = sort($numList);$count = count($numList);$mid = 0;if ($count % 2 == 0) {    // 个数是偶数则取中间两个数的和除以 2    $key1 = intval($count / 2) - 1;    $key2 = intval($count / 2);    $mid = ($numList[$key1] + $numList[$key2]) / 2;} else {    // 个数是奇数则取中间那个数    $key = intval($count / 2);    $mid = $numList[$key];}echo $mid;

一遍找出一个数组中最大的 2 个值

$itemList = array(    2,     4,     6,     3,     5,     12,     9,     19,     7,     8,     56,     34,     25,     78,     93,     35,     56,     24,     89,     44);$big1 = $big2 = 0;foreach ($itemList as $item) {    if ($item > $big1) {        $big2 = $big1;        $big1 = $item;    }}var_dump($big1);var_dump($big2);

多维数组排序

$data = array(    array(        'volume' => 67,         'edition' => 2    ),     array(        'volume' => 86,         'edition' => 1    ),     array(        'volume' => 85,         'edition' => 6    ),     array(        'volume' => 98,         'edition' => 2    ),     array(        'volume' => 86,         'edition' => 6    ),     array(        'volume' => 67,         'edition' => 7    ));// 取得列的列表foreach ($data as $key => $row) {    $volume[$key] = $row['volume'];    $edition[$key] = $row['edition'];}// 将数据根据 volume 降序排列,根据 edition 升序排列, $data 作为最后一个参数,以通用键排序array_multisort($volume, SORT_DESC, $edition, SORT_ASC, $data);var_dump($data);

写出一个能创建多级目录的 PHP 函数

function mkdirs($dir) {    if (! is_dir($dir)) {        if (! mkdirs(dirname($dir))) { return false;        }        if (! mkdir($dir, 0777)) { return false;        }    }    return true;}function mkdirs2($str) {    $arr = explode('/', $str);    $path = '';    foreach ($arr as $v) {        $path .= $v . '/';        if (! is_dir($path)) { mkdir($path);        }    }}mkdirs('dir1/dir2/dir3');mkdirs2('dir4/dir5/dir6');

如何实现字符串翻转?

$str = 'abc';// 使用php内置函数echo strrev($str);// 循环输出$length = strlen($str);$revStr = '';for ($i = $length - 1; $i >= 0; $i --) {    $revStr .= $str{$i};}echo $revStr;

实现中文字串截取无乱码的方法

当用 substr 截取中文字符会出现乱码,如果装了 mb 扩展, 用 mb_substr 截取就不会乱码

用 PHP 编写显示客户端IP 与服务器IP 的代码

// 客户端IP:echo $_SERVER[REMOTE_ADDR];echo getenv('REMOTE_ADDR');// 服务器IP:if (isset($_SERVER['SERVER_ADDR'])) {    $ip = $_SERVER['SERVER_ADDR'];} else {    $ip = $_SERVER['LOCAL_ADDR'];}

如何修改 SESSION 的生存时间

1、将 php.ini 中 session.gc_maxlifetime 设置为 9999(默认 为 1440)重启 apache 即可2、代码中修改:$savePath = "./session_save_dir/";$lifeTime = 24 * 3600;session_save_path($savePath);session_set_cookie_params($lifeTime);session_start();3、setcookie() 或 session_set_cookie_params($lifeTime)

有一个网页(如:http://www.baidu.com/index.html),如何得到它的内容?

$url = 'http://www.baidu.com/index.html';echo file_get_contents($url);

在HTTP1.0中,状态码401的含义是? 如果返回“找不到文件”的提示,其语句为?

状态值为 401,代表未被授权;header('HTTP/1.1 401 Unauthorized');header('status: 401 Unauthorized');// 找不到文件header('HTTP/1.1 404 Not Found');header("status: 404 Not Found");header('HTTP/1.1 301 Moved Permanently');header('Location: http://www.9qc.com/');

PHP中 heredoc 的用法

heredoc 的语法是用"<<<"加上自己定义成对的标签,在标签范围內的 文字视为一个字符串:$str = <<<EOFI saw a dog yesterday.EOF;需要注意:1、"<<<"后面的 EOF 是自定义的标签名称,必须要成对,最后要加上分号表示结束。2、结束的标签前面最好不要有空格,以免发生错误!

请写一个函数验证电子邮件的格式是否正确

function is_email($email) {    return preg_match("/^[w-.]+@[w-.]+(.w+)+$/", $email);}

$_SERVER数组中有哪些有用的值?

Array(    [script_FILENAME] => /var/www/test/server.php    [QUERY_STRING] => id=1&name=test    [REQUEST_METHOD] => GET    [script_NAME] => /server.php    [REQUEST_URI] => /server.php?id=1&name=test    [SERVER_PROTOCOL] => HTTP/1.1    [SERVER_SOFTWARE] => nginx/1.6.0    [REMOTE_ADDR] => 127.0.0.1    [REMOTE_PORT] => 56442    [SERVER_ADDR] => 127.0.0.1    [SERVER_PORT] => 80    [SERVER_NAME] => test.com    [REDIRECT_STATUS] => 200    [HTTP_HOST] => test.com    [HTTP_CONNECTION] => keep-alive    [HTTP_CACHE_CONTROL] => max-age=0    [HTTP_ACCEPT] => text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8    [HTTP_USER_AGENT] => Mozilla/5.0 (Macintosh; Intel Mac OS X 10_10_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.104 Safari/537.36    [HTTP_ACCEPT_ENCODING] => gzip, deflate, sdch    [HTTP_ACCEPT_LANGUAGE] => zh-CN,zh;q=0.8,en;q=0.6,zh-TW;q=0.4    [PHP_SELF] => /server.php    [REQUEST_TIME_FLOAT] => 1434974920.5889    [REQUEST_TIME] => 1434974920)

写出一些在 PHP 输出一段 HTML代码的办法

1、echo 或 print等直接输出2、require 或 include 包含一个 HTML 代码文件3、模板文件等中:<?php if($showHtml) { ?> <p>I am html code. </p> <?php } ?>

$userList = array(‘james’, ‘tom’, ‘symfony’); 请打印出 第一个元素的值;将所有值合并成用’,’号分隔的字符串输出

echo $userList[0];echo implode(",", $userList);

$a = ‘abcdef’; 请打印出$a的第一个字母

echo $a{0};

请写出 PHP5 权限控制修饰符

public protected private

请写出 php5 的构造函数和析构函数

__construct __destruct

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/266395.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号