Respuestas:
Usted está buscando basename
.
El ejemplo del manual de 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
más basename
como Metafaniel publicado a continuación. pathinfo()
le dará una matriz con las partes de la ruta. O para el caso aquí, puede pedir específicamente el nombre del archivo. Por pathinfo('/var/www/html/index.php', PATHINFO_FILENAME)
lo tanto, debe devolver la 'index.php'
documentación de PHP Pathinfo
PATHINFO_BASENAME
obtener el contenido completo index.php
. PATHINFO_FILENAME
le dará index
.
mb_substr($filepath,mb_strrpos($filepath,'/',0,'UTF-16LE'),NULL,'UTF-16LE')
- basta con sustituir UTF-16LE con lo characterSet sus usos del sistema de archivos (NTFS y ExFAT utiliza UTF16)
¡He hecho esto usando la función PATHINFO
que crea una matriz con las partes de la ruta para que la uses! Por ejemplo, puedes hacer esto:
<?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);
?>
Esto devolverá:
/usr/admin/config
test.xml
xml
test
¡El uso de esta función ha estado disponible desde PHP 5.2.0!
Luego puede manipular todas las partes que necesite. Por ejemplo, para usar la ruta completa, puede hacer esto:
$fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];
La basename
función debería darte lo que quieres:
Dada una cadena que contiene una ruta a un archivo, esta función devolverá el nombre base del archivo.
Por ejemplo, citando la página del manual:
<?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"
?>
O, en tu caso:
$full = 'F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map';
var_dump(basename($full));
Obtendrás:
string(10) "Output.map"
Hay varias formas de obtener el nombre y la extensión del archivo. Puede usar el siguiente, que es fácil de usar.
$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
Con SplFileInfo :
SplFileInfo La clase SplFileInfo ofrece una interfaz orientada a objetos de alto nivel para la información de un archivo individual.
Ref : 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 () tiene un error al procesar caracteres asiáticos como el chino.
Yo uso esto:
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.
. Pero también prefiero usar preg_replace, porque el separador de directorios difiere entre sistemas operativos. En Ubuntu `\` no es un separador directoy el nombre base no tendrá ningún efecto sobre él.
Para hacer esto en la menor cantidad de líneas, sugeriría usar la DIRECTORY_SEPARATOR
constante incorporada junto conexplode(delimiter, string)
para separar la ruta en partes y luego simplemente arrancar el último elemento en la matriz provista.
Ejemplo:
$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'
Puede usar la función basename () .
Para obtener el nombre exacto del archivo del URI, usaría este método:
<?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>
Es sencillo. Por ejemplo:
<?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 salida será:
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);