使用php中的basename()删除多个扩展

时间:2016-01-19 07:11:10

标签: php arrays function foreach

我希望消失多于一个的扩展。

 if (!empty($_FILES['files']['tmp_name'])){
    foreach($_FILES['files']['tmp_name'] as $key => $tmp_name) {
    $nama_files= $_FILES['files']['name'][$key];

    $ack= rand(1,99);
    $nama_files = $ack.$nama_files; 
    $dir_upload = "../../../img_galeri/";
    $file_upload = $dir_upload . $nama_files;
    move_uploaded_file($tmp_name, $file_upload);

   $title= basename($nama_files,".jpg") ;

我想让所有图片扩展名(.jpg .png .gif)消失,并且没有参与存储在标题图片中。

我试图像这样使用,但它不运行而且不起作用

$title= basename($nama_files,".jpg,png,gif,jpex,x-png") ;

任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

如果您的php >= php 5.2.x版本,您可以使用pathinfo()仅抓取文件名而不添加其扩展名。

$info = pathinfo('/www/img_galeri/asdf.jpg');
$onlyname = $info['filename']; // 'asdf'

答案 1 :(得分:0)

将最后一个语句更改为:

$title= basename($nama_files);
$pos = strrpos($title, '.');
if($pos !== false)
{
   $ext = substr($title, $pos+1);
   if($ext === 'jpg' ||
      $ext === 'png' ||
      $ext === 'gif' ||
      $ext === 'jpex' ||
      $ext === 'x-png')
   {
      $title = substr($title,0,$pos);
   }


}

我希望这能解决你的问题