从循环中的文件中删除en扩展名

时间:2015-07-12 06:57:01

标签: php html

我试图从循环中的每个文件名中删除文件扩展名,这样ball.jpg可以作为球回应,但它不适用于我

我有这段代码

$files = array();
foreach($src_files as $file)
{  
    $ext = strrchr($file, '.');
if(in_array($ext, $extensions)) 
{      
   array_push( $files, $file);
   $thumb = $src_folder.'/'.$file;
    $fileName = basename($file);
    $place = preg_replace("/\.[^.]+$/", "", $fileName); 
}      
}

1 个答案:

答案 0 :(得分:2)

试试这个:

$src_files = array('/tmp/path/file1.txt', '/tmp/path/file2.txt.php', '/tmp/not.ext');
$extensions = array('.txt', '.php');

$files = array();
foreach ($src_files as $file)
{  
    $ext = strrchr($file, '.');
    var_dump($ext);
    if (in_array($ext, $extensions)) 
    {      
        array_push($files, $file);
        //$thumb = $src_folder.'/'.$file; 
        $pathInfo = pathinfo($file);
        $fileName = $pathInfo['basename'];
        $place = $pathInfo['filename'];
        var_dump($pathInfo);
    } 
}

如果您只想要文件名而不使用扩展名,请使用pathinfo($fileName, PATHINFO_FILENAME);。有关详细信息,请参阅here

如果您不想使用pathinfo(),您还可以使用字符串操作技术:

$place = substr($fileName, 0 , (strrpos($fileName, "."))); 

strrpos()strpos()类似,但会搜索从字符串末尾开始并向后工作的字符。