+ -
当前位置:首页 → 问答吧 → 获取文件扩展名的方法(不可以例用PHP内置函数--面试题)

获取文件扩展名的方法(不可以例用PHP内置函数--面试题)

时间:2009-02-16

来源:互联网

自己写了个不用函数获取文件扩展名的方法;
<?php
   $a = "a/as..sa.jpeg";
   $i=$k=0;
   while($a[$i])
      if($a[$i++]=='.') $k=$i;  
   while($a[$k])
      $b .= $a[$k++];
   echo "得到扩展名:".$b;
?>
大家有什么更好的方法请贴出来交流下。。。

作者: xile   发布时间: 2009-02-16

不用内置函数思路就是LS所说的那样
但是.一道面试题.不但能看出你的编程功底.更可以看出你的代码风格.LZ的风格确实不敢恭维

作者: TankMe   发布时间: 2009-02-16

更好的方法,当然有了。

echo 'jpeg';

大功告成!

作者: [email protected]   发布时间: 2009-02-16


    $s = "a/assdasdsadadd..sa.jpeg";
    $sLen = strlen(trim($s))-1;
    $t ='';
    $i ='';
    for($i=$sLen;$i>=0;$i--) {
        $t++;
        if($s{$i} == '.' ) {
            $ext = substr($s,-$t+1);
            break;
        }
    }
    echo $ext;



作者: niceup   发布时间: 2009-02-16

LZ说的不用函数

作者: lxylxy888666   发布时间: 2009-02-16

学习了·

作者: xbantu   发布时间: 2009-02-17

从后面来吧,文件名可以有dot的

作者: hiptc   发布时间: 2009-02-17

[php]<?php
$a = "a/as..sa.jpeg";
for($i = 0;;$i++) {
        $str = $a[$i];
        if ($str === '') {
                break;
        }
        if ($str === '.') {
                $pos = $i+1;
        }
}
while ($a[$pos] !== '') {
        $ext .= $a[$pos];
        $pos++;
}
echo $ext;

?>[/php]

作者: shanji   发布时间: 2009-02-17

LZ写的有问题
路径、文件名或者扩展名里有0时就over了

作者: shanji   发布时间: 2009-02-17

while、echo、for、substr算是系统函数不?

作者: yafeikf   发布时间: 2009-02-17


<?php
   $a = 'asf0.s0.0.0/a0.000.a.00.s.000.jpeg';
   $b = '';
   $i = $k = 0;
   
   while($a[$i] != '') {
      if($a[$i++] == '.')
         $k = $i;
   }
   
   // 判断该文件是否含有扩展名   
   if($k != 0) {   
    while($a[$k] != '')
       $b .= $a[$k++];
   }
      
echo "得到扩展名:".$b;
?>

作者: xile   发布时间: 2009-02-17

问题已经解决[code]

<?php
   $a = 'asf0.s0.0.0/a0.000.a.00.s.000.jpeg';
   $b = '';
   $i = $k = 0;
   
   while($a[$i] != '') {
      if($a[$i++] == '.')
         $k = $i;
   }
   
   // 判断该文件是否含有扩展名   
   if($k != 0) {   
      while($a[$k] != '')
         $b .= $a[$k++];
   }
      
   echo "得到扩展名:".$b;
?>

[/code]

作者: xile   发布时间: 2009-02-17

while、for算是系统函数不?
无语了。。。
echo 是PHP语句。在这里只是用来测试用的。
貌似substr这个偶没用到哦。

作者: xile   发布时间: 2009-02-17

原帖由 xile 于 2009-2-16 01:36 发表
自己写了个不用函数获取文件扩展名的方法;

大家有什么更好的方法请贴出来交流下。。。
碰到名字中有零的文件名怎么办?
考虑不周。

作者: looking   发布时间: 2009-02-20

哈哈,后面的帖子没有看,就着急发帖了,我错了。~

作者: looking   发布时间: 2009-02-20

为什么不用自带函数,有了干吗不用 pathinfo(路径)!

作者: ruanhaiqiu   发布时间: 2009-08-11

$a = "a/as..sa.j0peg";
  
  
  echo ext($a);
  
  function ext($s){
          $i=0;
          $e=0;
          while (isset($s[$i])){
                  if($s[$i]=='.'){
                          $b='';
                          $e=1;
                  }else{
                          if($e) $b.=$s[$i];
                  }
                $i++;
          }
          return $b;
  }

作者: 9945   发布时间: 2009-08-11

从串尾遍历至第一次出现.号的地方,即为文件扩展名.

作者: ihavenomoney   发布时间: 2009-08-12

都是强人

作者: tangxuewu   发布时间: 2009-08-12