271 votes

Comment obtenir le nom de fichier du chemin complet avec PHP?

Par exemple, comment obtenir Output.map

de

F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map

avec PHP?

516voto

Mark Rushakoff Points 97350

Vous recherchez le nom de base .

L'exemple du manuel PHP:

 <?php
$path = "/home/httpd/html/index.php";
$file = basename($path);         // $file is set to "index.php"
$file = basename($path, ".php"); // $file is set to "index"
?>
 

14voto

Pascal MARTIN Points 195780

La fonction basename devrait vous donner ce que vous voulez:

Étant donné une chaîne contenant un chemin d'accès à un fichier, cette fonction renverra le nom de base du fichier.

Par exemple, en citant la page du manuel:

 <?php
$path = "/home/httpd/html/index.php";
$file = basename($path);         // $file is set to "index.php"
$file = basename($path, ".php"); // $file is set to "index"
?>
 

Ou, dans votre cas:

 $full = 'F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map';
var_dump(basename($full));
 

Tu auras :

 string(10) "Output.map"
 

12voto

daam37 Points 61

Essaye ça:

 echo basename($_SERVER["SCRIPT_FILENAME"], '.php') 
 

9voto

Sun Junwen Points 553

basename () a un bogue quand il traite des caractères asiatiques comme le chinois.

J'utilise ceci:

 function get_basename($filename)
{
    return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
 

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X