Ad esempio, come ottengo Output.map
a partire dal
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
con PHP?
Ad esempio, come ottengo Output.map
a partire dal
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
con PHP?
Risposte:
Stai cercando basename
.
L'esempio del manuale di 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
sopra basename
come Metafaniel postato qui sotto. pathinfo()
ti darà un array con le parti del percorso. O per il caso qui, puoi semplicemente chiedere il nome del file. Quindi pathinfo('/var/www/html/index.php', PATHINFO_FILENAME)
dovrebbe restituire la 'index.php'
documentazione PHP Pathinfo
PATHINFO_BASENAME
di ottenere il massimo index.php
. PATHINFO_FILENAME
ti darà index
.
mb_substr($filepath,mb_strrpos($filepath,'/',0,'UTF-16LE'),NULL,'UTF-16LE')
basta sostituire UTF-16LE con qualunque set di caratteri utilizzato dal proprio filesystem (NTFS ed ExFAT usano UTF16)
L'ho fatto usando la funzione PATHINFO
che crea un array con le parti del percorso che puoi usare! Ad esempio, puoi farlo:
<?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);
?>
Questo restituirà:
/usr/admin/config
test.xml
xml
test
L'uso di questa funzione è disponibile da PHP 5.2.0!
Quindi puoi manipolare tutte le parti di cui hai bisogno. Ad esempio, per utilizzare il percorso completo, è possibile effettuare ciò:
$fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];
La basename
funzione dovrebbe darti quello che vuoi:
Data una stringa contenente un percorso a un file, questa funzione restituirà il nome base del file.
Ad esempio, citando la pagina del manuale:
<?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"
?>
Oppure, nel tuo caso:
$full = 'F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map';
var_dump(basename($full));
Otterrai:
string(10) "Output.map"
Esistono diversi modi per ottenere il nome e l'estensione del file. È possibile utilizzare il seguente che è facile da usare.
$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 classe SplFileInfo offre un'interfaccia orientata agli oggetti di alto livello alle informazioni per un singolo file.
Rif : 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 () presenta un bug durante l'elaborazione di caratteri asiatici come il cinese.
Io lo uso questo:
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.
. Ma preferisco anche usare preg_replace, perché il separatore di directory differisce tra i sistemi operativi. Su Ubuntu `\` non è un separatore diretto e basename non avrà alcun effetto su di esso.
Per fare ciò con il minor numero di righe suggerirei di utilizzare la DIRECTORY_SEPARATOR
costante incorporata insieme explode(delimiter, string)
a separare il percorso in parti e quindi semplicemente rimuovere l'ultimo elemento nell'array fornito.
Esempio:
$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'
È possibile utilizzare la funzione basename () .
Per ottenere il nome esatto del file dall'URI, utilizzare questo metodo:
<?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>
È semplice. Per esempio:
<?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);
?>
L'output sarà:
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);