1 Pluspunkt 0 Minuspunkte

Wie kann ich in php prüfen um was für eine art von URI es sich bei einem string handelt? z.B

file://resource 
http://resource 
1.2.3.4/resource 
server:123/resource 

u.s.w

von  

1 Antwort

0 Pluspunkte 0 Minuspunkte

In PHP kannst du die Art der URI mithilfe von regulären Ausdrücken (Regular Expressions) überprüfen.

<?php

// Regex
function pruefeUriArt($uri) {
    // Überprüfe auf file://
    if (preg_match('/^file:\/\/.*/', $uri)) {
        return 'file';
    }

    // Überprüfe auf http:// oder https://
    if (preg_match('/^https?:\/\/.*/', $uri)) {
        return 'http';
    }

    // Überprüfe auf IP-Adresse gefolgt von /
    if (preg_match('/^\d+\.\d+\.\d+\.\d+\/.*/', $uri)) {
        return 'ip';
    }

    // Überprüfe auf hostname:port gefolgt von /
    if (preg_match('/^[a-zA-Z0-9.-]+:\d+\/.*/', $uri)) {
        return 'server';
    }

    // Füge hier weitere Überprüfungen hinzu, falls notwendig

    // Standardfall: unbekannte Art
    return 'unknown';
}

// Beispielverwendung
$uris = [
    'file://resource',
    'http://resource',
    '1.2.3.4/resource',
    'server:123/resource',
    // Füge hier weitere Beispiele hinzu, falls notwendig
];

foreach ($uris as $uri) {
    echo "URI: $uri - Art: " . pruefeUriArt($uri) . "\n";
}
?>
von (532 Punkte)