我想问下大家,假如我要截取上传图片的的文件名,但前提是保护文件后缀不变,只截取“.”前面的所有文件名,我用了很多方法都不可行,大家有更好的吗,因为我截取“.”的文件名以后在用日期重新命名,比如我要接"Waterlilies.jpg" 这个字段的“.jpg”以前所有的字段,怎么做有比较好的方法?

解决方案 »

  1.   

    那你实际上要的是扩展名呀
    见函数 pathinfo 的说明
      

  2.   

    date("YmdHis").strrchr("Waterlilies.jpg",".");
      

  3.   

    按LZ的意思就不需要再知道 . 前面的文件名了$name = time().".jpg";
      

  4.   

    用explode拆分啊!用end得到 最后一个!再加上时间. 
      

  5.   

    顶5楼
    建议LZ查查explode()的用法!
      

  6.   


    $name = "/tmp/aaa/bbb/ccc/ddd.eeee.jpg";
    $position = strrpos($name, "/") + 1;
    $file_name = substr($name, $position, strrpos($name, ".") - $position);
    echo $file_name;
      

  7.   

    [code=PHP][date("YmdHis").strrchr("Waterlilies.jpg",".");/code]
      

  8.   

    pathinfo
    (PHP 4 >= 4.0.3, PHP 5)pathinfo -- 返回文件路径的信息
    说明
    mixed pathinfo ( string path [, int options] )
    pathinfo() 返回一个关联数组包含有 path 的信息。包括以下的数组单元:dirname,basename 和 extension。 可以通过参数 options 指定要返回哪些单元。它们包括:PATHINFO_DIRNAME,PATHINFO_BASENAME 和 PATHINFO_EXTENSION。默认是返回全部的单元。如果不是要求取得所有单元,则本函数返回字符串。 例 1. pathinfo() 例子<?php
    $path_parts = pathinfo("/www/htdocs/index.html");
    echo $path_parts["dirname"] . "\n";
    echo $path_parts["basename"] . "\n";
    echo $path_parts["extension"] . "\n";
    ?>  上例将输出:/www/htdocs
    index.html
    html 
     
    注意: 有关取得当
      

  9.   

    $upfile = $path.$file_name;
    if(is_uploaded_file($_FILES['file']['tmp_name'])){
    if(!move_uploaded_file($_FILES['file']['tmp_name'],$upfile)){}
    上传处理的时候,你就可以直接命名了,如果你上传的文件后缀都一样那最好办了。
      

  10.   

    var value ="Waterlilies.jpg";
    var result = value.split(".");
    结果:result[0]=Waterlilies;
         result[1]=jpg;