在保留扩展名的同时使文件名小写

时间:2014-07-24 04:57:19

标签: php

假设我有以下代码:

  $myString = 'FilE.EXE';

  strlower($myString);

我想将名称减去其小写的扩展名,但上面的代码将使整个字符串变为小写。有没有办法可以在没有扩展名的情况下更改名称?如果是这样,最有效的方法是什么?

所需的输出:' file.EXE';

5 个答案:

答案 0 :(得分:3)

使用pathinfo

$myString = 'FilE.EXE'; $new_string = strtolower(pathinfo($myString, PATHINFO_FILENAME)) . '.' . pathinfo($myString, PATHINFO_EXTENSION); echo $new_string;

答案 1 :(得分:2)

你需要做这样的事情:

$string = "FilE.EXE";
list($name, $extension) = explode('.', $string);
$string = implode('.', array(strtolower($name), $extension));

希望它有所帮助。

答案 2 :(得分:1)

做的:

$myString = 'FilE.EXE';
$txt = strtolower( substr( $myString, 0, strrpos($myString, ".") ) )
          .substr( $myString, strrpos($myString, "."),  strlen($myString));
echo $txt; //gives file.EXE 

答案 3 :(得分:1)

您可能希望使用pathinfo()功能:

$myString = 'FilE.iNc.EXE';

$path_parts = pathinfo($myString);

$myNewString = implode('.', array(
    strtolower($path_parts['filename']),
    $path_parts['extension']
));

所以它可以输出这个:

file.inc.EXE

答案 4 :(得分:1)

<?php
$myString = 'FilE.EXE';
$txt = strtolower( substr( $myString, 0, strrpos($myString, ".") ) );
$hell  = substr( $myString, strrpos($myString, "."),  strlen($myString));
$babe = $txt.$hell;
echo $babe;