陆川| 东西湖| 汝州| 宁阳| 井冈山| 阿拉尔| 番禺| 吉木乃| 青神| 松江| 信阳| 乌拉特中旗| 福海| 庄河| 蒙山| 侯马| 元江| 沙湾| 柏乡| 青州| 镇雄| 莱州| 友好| 嘉义县| 宣化县| 绥滨| 凤凰| 彭山| 临泽| 宁津| 饶平| 康乐| 漯河| 灵武| 灌阳| 堆龙德庆| 富裕| 太和| 淳安| 敖汉旗| 永州| 金山| 辉南| 循化| 德兴| 宿豫| 怀安| 宝坻| 珲春| 梅里斯| 汾西| 都江堰| 锦屏| 华县| 长春| 乌拉特后旗| 克山| 大方| 乌海| 张湾镇| 周宁| 师宗| 抚远| 商城| 福贡| 石狮| 博乐| 平山| 德钦| 乾安| 渭源| 和政| 泗水| 新县| 边坝| 拜城| 班戈| 北票| 新津| 铁山| 泗县| 罗定| 凤翔| 永宁| 响水| 临海| 汉南| 富民| 图木舒克| 响水| 连城| 汉南| 砚山| 达州| 龙州| 乌兰| 奉化| 连云区| 五家渠| 达日| 德江| 昌平| 波密| 安义| 永吉| 盐田| 嵊州| 莒县| 三门峡| 南昌县| 开江| 安图| 青田| 华亭| 邯郸| 庄河| 沙雅| 中方| 富民| 凌海| 西盟| 阿瓦提| 陇南| 屏边| 文昌| 永济| 博爱| 阿克苏| 都兰| 淳化| 邕宁| 宜丰| 松滋| 梁山| 东丽| 云龙| 蓬莱| 凤冈| 长沙县| 永宁| 胶南| 图木舒克| 穆棱| 拜城| 会东| 沙洋| 布拖| 刚察| 罗定| 衢州| 望都| 宜昌| 北海| 迭部| 大同县| 河口| 常州| 新平| 遂平| 岢岚| 丰润| 新野| 平川| 浮梁| 万州| 海城| 和县| 丹阳| 潞城| 屯昌| 灞桥| 开平| 乳源| 吴桥| 札达| 拜泉| 黄冈| 华池| 汉沽| 肥乡| 河南| 城步| 永春| 新宁| 石河子| 龙海| 德令哈| 沂南| 蒙城| 朝阳市| 五峰| 安图| 青河| 江华| 渭南| 房山| 珊瑚岛| 岱岳| 连南| 西青| 公主岭| 彭山| 芮城| 陕县| 十堰| 山丹| 肃宁| 南召| 黄埔| 东方| 丰南| 香河| 青浦| 红河| 武穴| 开鲁| 阳原| 滦南| 镇康| 隆化| 新县| 靖州| 西昌| 定州| 南康| 陕县| 翁源| 新绛| 宜宾县| 丰顺| 佳木斯| 连平| 临桂| 贵南| 红安| 阜阳| 阿拉善左旗| 且末| 大名| 遂宁| 恒山| 天柱| 涪陵| 商洛| 慈溪| 屏东| 沂源| 淮滨| 南川| 沿河| 达孜| 金州| 柳林| 英山| 成武| 华宁| 汉源| 广德| 本溪市| 德兴| 正蓝旗| 尚义| 丹徒| 南充| 北京pk10辅助软件

重庆PHP培训
达内重庆杨家坪中心

18875076130

热门课程

PHP_面试笔试题--编程题(二)

  • 时间:2018-02-26
  • 发布:达内
  • 来源:网络

  • 标签:风雪 福彩3d周易预测图 石柱县

    编程题
    1. 写一个函数,尽可能高效的,从一个标准 url 里取出文件的扩展名
    例如: http://www.sina.com.cn.bbcbcc.com/abc/de/fg.php?id=1 需要取出 php 或 .php
          function getext($url) {
           $w_param = pathinfo($url);
          $str = $w_param['filename'];
          list($type, $vars) = explode('?',$str);
          $kuozhan=explode('.',$type);
           return $kuozhan[1];
    }


    2. 在 HTML 语言中,页面头部的 meta 标记可以用来输出文件的编码格式,以下是一个标准的 meta 语句
    请使用 PHP 语言写一个函数,把一个标准 HTML 页面中的类似 meta 标记中的 charset 部分值改为 big5
    请注意:
    1. 需要处理完整的 html 页面,即不光此 meta 语句
    2. 忽略大小写
    3. ' 和 " 在此处是可以互换的
    4. 'Content-Type' 两侧的引号是可以忽略的,但 'text/html; charset=gbk' 两侧的不行
    5. 注意处理多余空格


    3.写一个函数,算出两个文件的相对路径
    如 $a = '/a/b/c/d/e.php';
    $b = '/a/b/12/34/c.php';
    计算出 $b 相对于 $a 的相对路径应该是 ../../c/d将()添上
        答:function getRelativePath($a, $b) {  
        $returnPath = array(dirname($b));  
        $arrA = explode('/', $a);  
        $arrB = explode('/', $returnPath[0]);  
        for ($n = 1, $len = count($arrB); $n < $len; $n++){  
           if ($arrA[$n] != $arrB[$n]) { 
               break; 
           }    
        }  
        if ($len - $n > 0) {  
           $returnPath =array_merge($returnPath, array_fill(1, $len - $n, '..'));  
        }  
          
        $returnPath = array_merge($returnPath,array_slice($arrA, $n));  
        return implode('/', $returnPath);  
      }  
      echo getRelativePath($a, $b);



    4.写一个函数,能够遍历一个文件夹下的所有文件和子文件夹。
      function my_scandir($dir)
    {
         $files = array();
         if ( $handle = opendir($dir) ) {
             while ( ($file = readdir($handle)) !== false ) {
                 if ( $file != ".." && $file != "." ) {
                     if ( is_dir($dir . "/" . $file) ) {
                         $files[$file] = scandir($dir . "/" . $file);
                     }else {
                         $files[] = $file;
                     }
                 }
             }
             closedir($handle);
             return $files;
         }
    }

    5.简述论坛中无限分类的实现原理。
     答:
    <?php
    /*
    数据表结构如下:
    CREATE TABLE `category` (
    `categoryID` smallint(5) unsigned NOT NULL auto_increment,
    `categoryParentID` smallint(5) unsigned NOT NULL default '0',
    `categoryName` varchar(50) NOT NULL default '',
    PRIMARY KEY (`categoryID`)
    ) ENGINE=MyISAM DEFAULT CHARSET=gbk;
    INSERT INTO `category` ( `categoryParentID`, `categoryName`) VALUES
    (0, '一级类别'),
    (1, '二级类别'),
    (1, '二级类别'),
    (1, '二级类别'),
    (2, '三级类别'),
    (2, '333332'),
    (2, '234234'),
    (3, 'aqqqqqd'),
    (4, '哈哈'),
    (5, '66333666');
    */
    //指定分类id变量$category_id,然后返回该分类的所有子类
    //$default_category为默认的选中的分类
    function Get_Category($category_id = 0,$level = 0, $default_category =0)
    {
    global $DB;
    $sql = "SELECT * FROM category ORDER BY categoryID DESC";
    $result = $DB->query( $sql );
    while ($rows = $DB->fetch_array($result))
    {
    $category_array[$rows[categoryParentID]][$rows[categoryID]] = array('id'=> $rows[categoryID], 'parent' => $rows[categoryParentID], 'name' =>$rows
    [categoryName]);
    }
    if (!isset($category_array[$category_id]))
    {
    return "";
    }
    foreach($category_array[$category_id] AS $key => $category)
    {
    if ($category['id'] == $default_category)
    {
    echo "<option selectedvalue="http://cq-php-tedu-cn.bbcbcc.com/.$category['id']."";
    }else
    {
    echo "<option value="http://cq-php-tedu-cn.bbcbcc.com/.$category['id']."";
    }
    if ($level > 0)
    {
    echo ">" . str_repeat( " ", $level ) . "" . $category['name'] . "</option>/n";
    }
    else
    {
    echo ">" . $category['name'] ."</option>/n";
    }
    Get_Category($key, $level + 1, $default_category);
    }
    unset($category_array[$category_id]);
    }
    /*
    函数返回的数组格式如下所示:
    Array
    (
    [1] => Array ( [id] => 1 [name] => 一级类别[level] => 0 [ParentID] => 0 )
    [4] => Array ( [id] => 4 [name] => 二级类别[level] => 1 [ParentID] => 1 )
    [9] => Array ( [id] => 9 [name] => 哈哈[level] => 2 [ParentID] => 4 )
    [3] => Array ( [id] => 3 [name] => 二级类别[level] => 1 [ParentID] => 1 )
    [8] => Array ( [id] => 8 [name] => aqqqqqd [level] => 2[ParentID] => 3 )
    [2] => Array ( [id] => 2 [name] => 二级类别[level] => 1 [ParentID] => 1 )
    [7] => Array ( [id] => 7 [name] => 234234 [level] => 2[ParentID] => 2 )
    [6] => Array ( [id] => 6 [name] => 333332 [level] => 2[ParentID] => 2 )
    [5] => Array ( [id] => 5 [name] => 三级类别[level] => 2 [ParentID] => 2 )
    [10] => Array ( [id] => 10 [name] => 66333666 [level] => 3[ParentID] => 5 )
    )
    */
    //指定分类id,然后返回数组
    function Category_array($category_id = 0,$level=0)
    {
    global $DB;
    $sql = "SELECT * FROM category ORDER BY categoryID DESC";
    $result = $DB->query($sql);
    while ($rows = $DB->fetch_array($result))
    {
    $category_array[$rows['categoryParentID']][$rows['categoryID']] = $rows;
    }
    foreach ($category_array AS $key=>$val)
    {
    if ($key == $category_id)
    {
    foreach ($val AS $k=> $v)
    {
    $options[$k] =
    array(
    'id' => $v['categoryID'], 'name' => $v['categoryName'], 'level'=> $level, 'ParentID'=>$v['categoryParentID']
    );
    $children = Category_array($k, $level+1);
    if (count($children) > 0)
    {
    $options = $options + $children;
    }
    }
    }
    }
    unset($category_array[$category_id]);
    return $options;
    }
    ?>

    <?php
    class cate
    {
           function Get_Category($category_id= 0,$level = 0, $default_category = 0)
           {
                echo$category_id;
                $arr= array(
                '0' => array(
                               '1' => array('id' => 1, 'parent' => 0, 'name' => '1111'),
                               '2' => array('id' => 2, 'parent' => 0, 'name' => '2222'),
                              '4' => array('id' => 4, 'parent' => 0, 'name' =>'4444')    
                            ),
                '1' => array(
                                '3' => array('id' => 3, 'parent' => 1, 'name' => '333333'),
                              '5' => array('id' => 5, 'parent' => 1, 'name' => '555555')    
                              ),
                            
                '3' => array(
                              '6' => array('id' => 6, 'parent' => 3, 'name' => '66666'),
                              '7' => array('id' => 7, 'parent' => 3, 'name' => '77777')
                              ),
                '4' => array(
                              '8' => array('id' => 8, 'parent' => 4, 'name' => '8888'),
                              '9' => array('id' => 9, 'parent' => 4, 'name' => '9999')
                              )    
                );
                if(!isset($arr[$category_id]))
                {
                  return "";
                }
        
               foreach($arr[$category_id] AS $key => $cate)
                {
                   if ($cate['id'] == $default_category)
                   {
                       $txt = "<option selected value="http://cq-php-tedu-cn.bbcbcc.com/.$cate['id']."";
                   }else{
                       $txt = "<option value="http://cq-php-tedu-cn.bbcbcc.com/.$cate['id']."";
                   }
               
                   if ($level > 0)
                   {
                      $txt1 = ">" . str_repeat( "-", $level ) . " ". $cate['name'] . "</option>/n";
                   }else{
                       $txt1 = ">" . $cate['name'] . "</option>/n";
                   }
                   $val = $txt.$txt1;
                   echo $val;
                   self::Get_Category($key, $level + 1, $default_category);
                }
               
           }
           
           
           function getFlush($category_id =0,$level = 0, $default_category = 0)
           {
               
               ob_start();
              self::Get_Category($category_id ,$level, $default_category);
               $out =ob_get_contents();
              ob_end_clean();
               return$out;
           }    
    }
    $id =$_GET['id'];
    echo "<select>";
    $c = new cate();
    //$c->Get_Category();
    $ttt=  $c->getFlush($id,'0','3');
    echo $ttt;
    echo "</select>";
    ?>

上一篇:腾讯招聘PHP工程师面试笔试题及答案
下一篇:PHP_面试笔试题--填空题
选择城市和中心
贵州省

广西省

海南省

钱满胡同 交通中心 肖家河社区 广东东莞市厚街镇 石狮市国家税务局永宁分局
常里营村 吕匣 扬施堰 郭滩乡 上海金山区廊下镇
中国福彩3d开奖 利盈时时彩平台 江苏快三开奖号 河北体彩11选5 江苏快三
心水论坛 http://www.81829.com/ 排奇特-新闻网 http://www.payqt.com/