Zum Beispiel, wie bekomme ich Output.map
von
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
mit PHP?
Zum Beispiel, wie bekomme ich Output.map
von
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
mit PHP?
Antworten:
Du suchst basename
.
Das Beispiel aus dem PHP-Handbuch:
<?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
über basename
wie Metafaniel unten geschrieben. pathinfo()
gibt Ihnen ein Array mit den Teilen des Pfades. Oder für den Fall hier können Sie einfach speziell nach dem Dateinamen fragen. Also pathinfo('/var/www/html/index.php', PATHINFO_FILENAME)
sollte 'index.php'
PHP Pathinfo Dokumentation zurückgeben
PATHINFO_BASENAME
Sie die vollständige Version erhalten index.php
. PATHINFO_FILENAME
werde dir geben index
.
mb_substr($filepath,mb_strrpos($filepath,'/',0,'UTF-16LE'),NULL,'UTF-16LE')
- ersetzen Sie UTF-16LE einfach durch den von Ihrem Dateisystem verwendeten Zeichensatz (NTFS und ExFAT verwenden UTF16)
Ich habe dies mit der Funktion gemacht, PATHINFO
die ein Array mit den Teilen des Pfades erstellt, die Sie verwenden können! Zum Beispiel können Sie dies tun:
<?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);
?>
Dies wird zurückkehren:
/usr/admin/config
test.xml
xml
test
Die Verwendung dieser Funktion ist seit PHP 5.2.0 verfügbar!
Dann können Sie alle Teile nach Bedarf bearbeiten. Um beispielsweise den vollständigen Pfad zu verwenden, können Sie Folgendes tun:
$fullPath = $xmlFile['dirname'] . '/' . $xmlFile['basename'];
Die basename
Funktion sollte Ihnen geben, was Sie wollen:
Bei einer Zeichenfolge, die einen Pfad zu einer Datei enthält, gibt diese Funktion den Basisnamen der Datei zurück.
Zum Beispiel die Seite des Handbuchs zitieren:
<?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"
?>
Oder in Ihrem Fall:
$full = 'F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map';
var_dump(basename($full));
Du wirst kriegen:
string(10) "Output.map"
Es gibt verschiedene Möglichkeiten, den Dateinamen und die Erweiterung abzurufen. Sie können die folgende verwenden, die einfach zu bedienen ist.
$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
Mit SplFileInfo :
SplFileInfo Die SplFileInfo-Klasse bietet eine objektorientierte Schnittstelle auf hoher Ebene zu Informationen für eine einzelne Datei.
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 () hat einen Fehler bei der Verarbeitung asiatischer Zeichen wie Chinesisch.
Ich benutze das:
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.
. Ich bevorzuge aber auch die Verwendung von preg_replace, da sich das Verzeichnis-Trennzeichen zwischen den Betriebssystemen unterscheidet. Unter Ubuntu ist `\` kein Direkttrennzeichen und der Basisname hat keine Auswirkung darauf.
Um dies in den wenigsten Zeilen zu tun, würde ich vorschlagen, die eingebaute DIRECTORY_SEPARATOR
Konstante zusammen mit explode(delimiter, string)
zu verwenden, um den Pfad in Teile zu trennen und dann einfach das letzte Element im bereitgestellten Array abzureißen.
Beispiel:
$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'
Sie können die Funktion basename () verwenden.
Um den genauen Dateinamen von der URI zu erhalten, würde ich diese Methode verwenden:
<?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 ist einfach. Beispielsweise:
<?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);
?>
Die Ausgabe wird sein:
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);