Signatur
Beschreibung
ftp_systype() fragt den verbundenen FTP-Server nach seinem Systemtyp ab. Der Server antwortet dabei mit einer Zeichenkette, die das Betriebssystem oder die Systemfamilie identifiziert, z. B. UNIX, Windows_NT oder MACOS. Diese Information stammt aus der FTP-SYST-Kommandoantwort des Servers.
Der Rückgabewert kann genutzt werden, um das Verhalten von Dateioperationen anzupassen, beispielsweise wenn Pfadtrennzeichen oder Dateilistenformate betriebssystemabhängig ausgewertet werden müssen. So liefert ftp_rawlist() je nach Servertyp unterschiedliche Ausgabeformate.
Die Funktion eignet sich besonders zur Diagnose von FTP-Verbindungen sowie zur Entscheidungslogik in FTP-Clients, die mit heterogenen Serversystemen umgehen müssen. Bei einem Fehler – etwa wenn das SYST-Kommando vom Server nicht unterstützt wird – gibt die Funktion false zurück.
Parameter
| Name | Typ | Default | Beschreibung |
|---|---|---|---|
| $ftp Pflicht | FTP\Connection | Eine aktive FTP-Verbindungsinstanz, die zuvor mit ftp_connect() oder ftp_ssl_connect() erstellt und mit ftp_login() authentifiziert wurde. |
Rückgabewert
UNIX oder Windows_NT). Bei einem Fehler oder wenn das SYST-Kommando nicht unterstützt wird, wird false zurückgegeben.Beispiele
Systemtyp eines FTP-Servers ermitteln
<?php
$ftp = ftp_connect('ftp.example.com');
if ($ftp === false) {
die('Verbindung fehlgeschlagen.');
}
if (!ftp_login($ftp, 'benutzername', 'passwort')) {
die('Anmeldung fehlgeschlagen.');
}
$systemtyp = ftp_systype($ftp);
if ($systemtyp !== false) {
echo 'Servertyp: ' . $systemtyp;
} else {
echo 'Systemtyp konnte nicht ermittelt werden.';
}
ftp_close($ftp);
?>
Pfadtrenner je nach Servertyp anpassen
<?php
$ftp = ftp_connect('ftp.example.com');
ftp_login($ftp, 'benutzername', 'passwort');
$systemtyp = ftp_systype($ftp);
if ($systemtyp !== false) {
// Auf Windows-Servern ggf. abweichendes Verhalten
if (stripos($systemtyp, 'Windows') !== false) {
echo 'Windows-FTP-Server erkannt – Pfadtrennzeichen: \\';
} else {
echo 'UNIX-artiger FTP-Server erkannt – Pfadtrennzeichen: /';
}
} else {
echo 'Systemtyp nicht verfügbar.';
}
ftp_close($ftp);
?>
// Wichtig · Fallstricke
Nicht alle FTP-Server implementieren das SYST-Kommando. Manche Server antworten mit einer generischen oder absichtlich verschleierten Systembezeichnung aus Sicherheitsgründen, um keine Informationen über das Serverbetriebssystem preiszugeben.
Ab PHP 8.1 ist der Parameter ein Objekt vom Typ FTP\Connection; in älteren PHP-Versionen (vor 8.1) wurde eine Ressource vom Typ resource verwendet.