Réponses:
Vous cherchez basename
.
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"
?>
pathinfo
plus basename
que Metafaniel a posté ci-dessous. pathinfo()
vous donnera un tableau avec les parties du chemin. Ou pour le cas ici, vous pouvez simplement demander spécifiquement le nom du fichier. Donc, pathinfo('/var/www/html/index.php', PATHINFO_FILENAME)
devrait retourner la 'index.php'
documentation PHP Pathinfo
PATHINFO_BASENAME
en avoir plein index.php
. PATHINFO_FILENAME
vous donnera index
.
mb_substr($filepath,mb_strrpos($filepath,'/',0,'UTF-16LE'),NULL,'UTF-16LE')
- remplacez simplement UTF-16LE par le jeu de caractères utilisé par votre système de fichiers (NTFS et ExFAT utilise UTF16)
Je l'ai fait en utilisant la fonction PATHINFO
qui crée un tableau avec les parties du chemin à utiliser! Par exemple, vous pouvez faire ceci:
<?php
$xmlFile = pathinfo('/usr/admin/config/test.xml');
function filePathParts($arg1) {
echo $arg1['dirname'], "\n";
echo $arg1['basename'], "\n";
echo $arg1['extension'], "\n";
echo $arg1['filename'], "\n";
}
filePathParts($xmlFile);
?>
Cela reviendra:
/usr/admin/config
test.xml
xml
test
L'utilisation de cette fonction est disponible depuis PHP 5.2.0!
Ensuite, vous pouvez manipuler toutes les pièces selon vos besoins. Par exemple, pour utiliser le chemin complet, vous pouvez procéder comme suit:
$fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];
Il existe plusieurs façons d'obtenir le nom et l'extension du fichier. Vous pouvez utiliser le suivant qui est facile à utiliser.
$url = 'http://www.nepaltraveldoor.com/images/trekking/nepal/annapurna-region/Annapurna-region-trekking.jpg';
$file = file_get_contents($url); // To get file
$name = basename($url); // To get file name
$ext = pathinfo($url, PATHINFO_EXTENSION); // To get extension
$name2 =pathinfo($url, PATHINFO_FILENAME); // File name without extension
La basename
fonction devrait vous donner ce que vous voulez:
Étant donné une chaîne contenant un chemin d'accès à un fichier, cette fonction retournera 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"
Avec SplFileInfo :
SplFileInfo La classe SplFileInfo offre une interface orientée objet de haut niveau vers les informations d'un fichier individuel.
Réf : http://php.net/manual/en/splfileinfo.getfilename.php
$info = new SplFileInfo('/path/to/foo.txt');
var_dump($info->getFilename());
o / p: string (7) "foo.txt"
basename () a un bug lors du traitement des caractères asiatiques comme le chinois.
J'utilise ceci:
function get_basename($filename)
{
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
Caution basename() is locale aware, so for it to see the correct basename with multibyte character paths, the matching locale must be set using the setlocale() function.
. Mais je préfère également utiliser preg_replace, car le séparateur de répertoires diffère selon les systèmes d'exploitation. Sur Ubuntu `\` n'est pas un séparateur direct et le nom de base n'aura aucun effet dessus.
Pour ce faire, en quelques lignes, je suggère d'utiliser la DIRECTORY_SEPARATOR
constante intégrée avec explode(delimiter, string)
pour séparer le chemin en parties, puis arracher simplement le dernier élément du tableau fourni.
Exemple:
$path = 'F:\Program Files\SSH Communications Security\SSH SecureShell\Output.map'
//Get filename from path
$pathArr = explode(DIRECTORY_SEPARATOR, $path);
$filename = end($pathArr);
echo $filename;
>> 'Output.map'
Vous pouvez utiliser la fonction basename () .
Pour obtenir le nom de fichier exact de l'URI, j'utiliserais cette méthode:
<?php
$file1 =basename("http://localhost/eFEIS/agency_application_form.php?formid=1&task=edit") ;
//basename($_SERVER['REQUEST_URI']); // Or use this to get the URI dynamically.
echo $basename = substr($file1, 0, strpos($file1, '?'));
?>
<?php
$windows = "F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map";
/* str_replace(find, replace, string, count) */
$unix = str_replace("\\", "/", $windows);
print_r(pathinfo($unix, PATHINFO_BASENAME));
?>
body, html, iframe {
width: 100% ;
height: 100% ;
overflow: hidden ;
}
<iframe src="https://ideone.com/Rfxd0P"></iframe>
C'est simple. Par exemple:
<?php
function filePath($filePath)
{
$fileParts = pathinfo($filePath);
if (!isset($fileParts['filename']))
{
$fileParts['filename'] = substr($fileParts['basename'], 0, strrpos($fileParts['basename'], '.'));
}
return $fileParts;
}
$filePath = filePath('/www/htdocs/index.html');
print_r($filePath);
?>
La sortie sera:
Array
(
[dirname] => /www/htdocs
[basename] => index.html
[extension] => html
[filename] => index
)
$image_path = "F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map";
$arr = explode('\\',$image_path);
$name = end($arr);