Aktueller Standort: Startseite> Neueste Artikel> So konvertieren Sie das Ergebnis von FTP_RAWLIST in das JSON -Format

So konvertieren Sie das Ergebnis von FTP_RAWLIST in das JSON -Format

gitbox 2025-05-26

1. Verstehen Sie das Format von FTP_RAWLIST -Rückgabeergebnis

FTP_RAWLIST gibt ein Array von Zeichenfolgen zurück. Jede Zeichenfolge ähnelt der Ausgabe des LS -L -Befehls im Linux -System, zum Beispiel:

 -rw-r--r-- 1 user group 1234 May 10 10:00 file1.txt
drwxr-xr-x 2 user group 4096 May 09 09:00 folder1

Die in jeder Zeile enthaltenen Informationen sind:

  • Dateiberechtigungen (wie -rw-r-r-- )

  • Harte Linkzahl

  • Der Benutzer, zu dem die Datei gehört

  • Datei gehört zur Gruppe

  • Dateigröße (Byte -Nummer)

  • Modifiziertes Datum (normalerweise einschließlich Monat, Tag, Zeit oder Jahr)

  • Dateiname


2. Das Ergebnis von FTP_RAWLIST an ein Array analysieren

Der Schwerpunkt des Analyseprozesses liegt auf der Aufschlüsselung jeder Stringlinie in verschiedene Felder und organisierte sie in Schlüsselwertpaare. Der Beispielcode lautet wie folgt:

 <?php
function parseRawList(array $rawList): array {
    $files = [];
    foreach ($rawList as $line) {
        $chunks = preg_split('/\s+/', $line, 9);
        if (count($chunks) < 9) {
            continue; // Ausnahme des Formats,über etwas springen
        }
        list($permissions, $links, $owner, $group, $size, $month, $day, $timeOrYear, $name) = $chunks;

        // entsprechendtimeOrYearRichter Jahr oder Zeit
        if (strpos($timeOrYear, ':') !== false) {
            // Einschließlich Zeit,Das Jahr dauert das laufende Jahr
            $year = date('Y');
            $time = $timeOrYear;
        } else {
            $year = $timeOrYear;
            $time = '00:00';
        }

        // Spleißen vollständige Änderungszeit,In den Zeitstempel konvertieren
        $dateStr = "$month $day $year $time";
        $timestamp = strtotime($dateStr);

        $files[] = [
            'name' => $name,
            'permissions' => $permissions,
            'links' => (int)$links,
            'owner' => $owner,
            'group' => $group,
            'size' => (int)$size,
            'modified' => date('Y-m-d H:i:s', $timestamp),
            'is_dir' => $permissions[0] === 'd',
        ];
    }
    return $files;
}
?>

3. Beispiel: Stellen Sie eine Verbindung zu FTP her, holen Sie sich die Liste und konvertieren Sie sie in JSON

Das vollständige Beispiel zeigt, wie Sie eine Verbindung zu einem FTP -Server herstellen, FTP_RAWLIST aufrufen und dann mit der oben genannten Parsing -Funktion JSON konvertieren und ausgeben:

 <?php
$ftpServer = 'gitbox.net';
$ftpUser = 'username';
$ftpPass = 'password';

// GründenFTPverbinden
$connId = ftp_connect($ftpServer);
if (!$connId) {
    die("无法verbinden到FTPServer $ftpServer");
}

// Einloggen
if (!ftp_login($connId, $ftpUser, $ftpPass)) {
    ftp_close($connId);
    die("FTPEinloggen失败");
}

// Holen Sie sich die Original -Dateiliste
$rawList = ftp_rawlist($connId, '.');
if ($rawList === false) {
    ftp_close($connId);
    die("ErhaltenFTPListe fehlgeschlagen");
}

// Analyseliste
$filesArray = parseRawList($rawList);

// AusgabeJSONFormat
header('Content-Type: application/json');
echo json_encode($filesArray, JSON_PRETTY_PRINT);

// 关闭verbinden
ftp_close($connId);

// Die Parsingfunktion ist die gleiche wie oben,leicht
?>

4. Zusammenfassung

Durch die obige Methode konvertieren wir das Ergebnis der String -Liste der Funktion ftp_rawlist in ein strukturiertes Array und generieren schließlich JSON -Formatdaten. Dies erleichtert nicht nur den Betrieb der FTP-Dateiliste innerhalb des PHP-Programms, sondern erleichtert auch die Übertragung von Daten auf das Front-End oder andere Systeme über die API.

Diese Methode eignet sich besonders zum Erstellen von Backend- oder Datei -Browsing -Funktionen für das Management von FTP -Dateilisten, wodurch die Datenverarbeitung intuitiver und effizienter gestaltet wird.