Wie bekomme ich zB Output.map
von
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
mit PHP?
OMG
Wie bekomme ich zB Output.map
von
F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map
mit PHP?
Mark Ruschakoff
Du schaust nach 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"
?>
basename() hat einen Fehler, wenn asiatische Zeichen wie Chinesisch verarbeitet werden.
– Sonne Junwen
16. März 2013 um 10:30 Uhr
Danke Sun, du hast mir gerade Stunden des Bugkillens erspart, da meine App im Ausland verwendet wird.
– SilentSteel
3. März 2014 um 21:52 Uhr
ich würde vorschlagen pathinfo
über basename
wie Metafaniel unten gepostet hat. pathinfo()
gibt Ihnen ein Array mit den Teilen des Pfades. Oder für den Fall hier können Sie einfach gezielt nach dem Dateinamen fragen. Damit pathinfo('/var/www/html/index.php', PATHINFO_FILENAME)
sollte zurückkehren 'index.php'
PHP Pathinfo-Dokumentation
– OnethingSimple
19. April 2015 um 13:54 Uhr
@OnethingSimple Überprüfen Sie die Dokumente erneut … obwohl es nicht intuitiv ist, werden Sie es wollen PATHINFO_BASENAME
das volle zu bekommen index.php
. PATHINFO_FILENAME
werde dir geben index
.
– Levigroker
12. April 2016 um 22:59 Uhr
in jedem Fall für ein Unicode-kompatibles Verfahren, mb_substr($filepath,mb_strrpos($filepath,'/',0,'UTF-16LE'),NULL,'UTF-16LE')
– Ersetzen Sie einfach UTF-16LE durch den Zeichensatz, den Ihr Dateisystem verwendet (NTFS und ExFAT verwenden UTF16).
– Hansenrik
23. September 2017 um 15:20 Uhr
Metafaniel
Ich habe das mit der Funktion gemacht PATHINFO
Dadurch wird ein Array mit den Teilen des Pfads erstellt, die Sie verwenden können! Beispielsweise 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ückgegeben:
/usr/admin/config
test.xml
xml
test
Die Nutzung dieser Funktion ist seit PHP 5.2.0 möglich!
Dann können Sie alle Teile nach Bedarf manipulieren. Um beispielsweise den vollständigen Pfad zu verwenden, können Sie Folgendes tun:
$fullPath = $xmlFile['dirname'] . "https://stackoverflow.com/" . $xmlFile['basename'];
Ich musste mich ändern \n
hinein <br>
um die formatierte Ausgabe zu erhalten, die Sie beschreiben?
– Frank Conijn
12. August 2021 um 9:23 Uhr
@FrankConijn Aufgrund Ihrer Frage sehe ich, dass Sie einen Webbrowser mit meinem Code-Snippet verwenden. In diesem Fall: ja, Sie müssen ersetzen \n
mit <br>
. Mein Code soll über die Befehlszeile ausgeführt werden, daher bricht die Zeile mit \n
Arbeit. Grüße.
– Metafaniel
12. August 2021 um 22:10 Uhr
Khadka Pushpendra
Es gibt mehrere Möglichkeiten, den Dateinamen und die Erweiterung zu erhalten. Sie können das folgende verwenden, das einfach zu verwenden 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
Pascal Martin
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"
internals-in
Mit SplFileInfo:
SplFileInfo Die Klasse SplFileInfo 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”
atwebceo
Versuche dies:
echo basename($_SERVER["SCRIPT_FILENAME"], '.php')
Peter Mortensen
basename() hat einen Fehler bei der Verarbeitung asiatischer Zeichen wie Chinesisch.
Ich benutze das:
function get_basename($filename)
{
return preg_replace('/^.+[\\\\\\/]/', '', $filename);
}
Ich glaube nicht, dass es ein Fehler ist, in der Dokumente es wird erwähnt: 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.
. Aber ich bevorzuge auch die Verwendung von preg_replace, da sich die Verzeichnistrennzeichen zwischen den Betriebssystemen unterscheiden. Unter Ubuntu ist `\` kein Verzeichnistrenner und der Basisname hat keine Auswirkung darauf.
– Adam
7. Juni 2020 um 8:35 Uhr