Zoeken…


Invoering

Terwijl u PHP codeert, komt u waarschijnlijk in een positie waarin u een URL in verschillende delen moet opsplitsen. Er is duidelijk meer dan één manier om dit te doen, afhankelijk van uw behoeften. In dit artikel worden die manieren voor u uitgelegd, zodat u kunt vinden wat het beste voor u werkt.

Parse_url () gebruiken

parse_url (): deze functie ontleedt een URL en retourneert een associatieve array met een van de verschillende componenten van de URL die aanwezig zijn.

$url = parse_url('http://example.com/project/controller/action/param1/param2');

Array
(
    [scheme] => http
    [host] => example.com
    [path] => /project/controller/action/param1/param2
)

Als je het pad gescheiden wilt hebben, kun je exploderen

$url = parse_url('http://example.com/project/controller/action/param1/param2');
$url['sections'] = explode('/', $url['path']);

Array
(
    [scheme] => http
    [host] => example.com
    [path] => /project/controller/action/param1/param2
    [sections] => Array
        (
            [0] => 
            [1] => project
            [2] => controller
            [3] => action
            [4] => param1
            [5] => param2
        )

)

Als je het laatste deel van de sectie nodig hebt, kun je end () als volgt gebruiken:

$last = end($url['sections']);

Als de URL GET-vars bevat, kunt u die ook ophalen

$url = parse_url('http://example.com?var1=value1&var2=value2');

Array
(
    [scheme] => http
    [host] => example.com
    [query] => var1=value1&var2=value2
)

Als u de zoekopdrachtvarianten wilt splitsen, kunt u parse_str () als volgt gebruiken:

$url = parse_url('http://example.com?var1=value1&var2=value2');
parse_str($url['query'], $parts);

Array
(
    [var1] => value1
    [var2] => value2
)

Explode () gebruiken

explode (): Retourneert een reeks strings, die elk een substring van string is, gevormd door deze te splitsen op grenzen gevormd door het stringscheidingsteken.

Deze functie is vrij eenvoudig.

$url = "http://example.com/project/controller/action/param1/param2";
$parts = explode('/', $url);

Array
(
    [0] => http:
    [1] => 
    [2] => example.com
    [3] => project
    [4] => controller
    [5] => action
    [6] => param1
    [7] => param2
)

U kunt het laatste deel van de URL op deze manier ophalen:

$last = end($parts);
// Output: param2

U kunt ook binnen de array navigeren door sizeof () te gebruiken in combinatie met een wiskundige operator zoals deze:

echo $parts[sizeof($parts)-2];
// Output: param1

Basename () gebruiken

basename (): gegeven een tekenreeks die het pad naar een bestand of map bevat, retourneert deze functie de component met de volgende naam.

Deze functie retourneert alleen het laatste deel van een URL

$url = "http://example.com/project/controller/action/param1/param2";
$parts = basename($url);
// Output: param2

Als uw URL meer dingen bevat en u de naam van de map met het bestand nodig heeft, kunt u deze gebruiken met de naam dirname ():

$url = "http://example.com/project/controller/action/param1/param2/index.php";
$parts = basename(dirname($url));
// Output: param2


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow