Preg_Match / Regular Expression für URL Parameter

MsvP@habdichliebhasi

Erfahrenes Mitglied
Hallo zusammen,

ich habe eine htaccess-Weiterleitung, die eine Zend URL auf ein externes Skript weiterleitet.
Dabei ist die URL durch das eigene Speaking-URL Programm von Zend einwenig abgewandelt, zu einem normalen URL-Path.
Jetzt kämpfe ich schon seit einigen Stunden damit, die entsprechenden Parameter aus der URL auszulesen.

Folgendermaßen ist die URL aufgebaut:

http://webadress.de/Controller/Action/Parameter1/value1/Parameter2/value2

Am besten wäre ein Array das am Ende folgendes enthalt:

$parameterlist['Controller'] = Action;
$parameterlist['parameter1'] = value1;
$parameterlist['parameter2'] = value2;

Danke für eure Hilfe
Lg
MsvP
 
Der Algorithmus könnte so aussehen:

PHP:
<?php

function f($url)
{
    $path = parse_url($url, PHP_URL_PATH);

    $parts = explode('/', trim($path, '/'));

    // Ignore incomplete pairs at end of URL
    $pairs = intval(count($parts) / 2);

    $ret = array();

    for ($i = 0; $i < $pairs; $i++) {
        $ret[$parts[$i * 2]] = $parts[$i * 2 + 1];
    }

    return $ret;
}



$url = 'http://example.org/Controller/Action/Parameter1/value1/Parameter2/value2';

var_dump(f($url));

Ich kann dir aber nicht sagen, ob das in deinem Kontext auf die Weise Sinn ergibt. Wenn du das ZF nutzt, übernimmt diese Auswertung eigentlich ein Router.
 
Super! Vielen Dank für deine Hilfe.
Sinn macht es in sofern vielleicht nicht unbedingt, aber es ist jetzt die einfachste Lösung. Es geht um ein Script, was recht häufig aufgerufen wird, durch die Grundarchitektur von Zend1 aber relativ langsam ist. Daher habe es jetzt aus Zend rausgelöst, muss aber die übermittelten Variablen haben.

Da ich derzeit plane das ganze System auf Zend 3 basis neu aufzubauen, wird es wohl auch nur eine kurze Zwischenlösung darstellen.
 

Neue Beiträge

Zurück