Wie erhalte ich einen Dateinamen aus einem vollständigen Pfad mit PHP?

Lesezeit: 4 Minuten

Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
OMG

Wie bekomme ich zB Output.map

von

F:\Program Files\SSH Communications Security\SSH Secure Shell\Output.map

mit PHP?

Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
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


Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
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


1646887447 896 Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
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

1646887447 181 Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
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"

1646887447 407 Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
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”

1646887448 55 Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
atwebceo

Versuche dies:

echo basename($_SERVER["SCRIPT_FILENAME"], '.php') 

1646887448 806 Wie erhalte ich einen Dateinamen aus einem vollstandigen Pfad mit
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


986220cookie-checkWie erhalte ich einen Dateinamen aus einem vollständigen Pfad mit PHP?

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy