den folgenden naiven Code Angenommen:Handhabung komplexe GET-Parameter mit Slim-Framework HTTP Routing
$app->get('(/store(/:url)+)', function($url = NULL) use ($app)
{
// Execute actions on $url
});
Die oben arbeitet für die folgende fein:
http://localhost/api/0001/store/url-data
aber es funktioniert nicht für:
http://localhost/api/0001/store/http%3A%2F%2Fexample.com%2FSomething
http://localhost/api/0001/store/http://example.com/Something
// and other variations
Ich möchte eine vollständige codierte URI übergeben, um auf der Serverseite zu behandeln. Wie kann ich das mit Slim schaffen?
Hinweise:
Andere Arten von HTTP-Requests (POST, PUT) nicht für dieses gegebene Problem umgehen.
Es kann auf der anderen Seite durch Neuformatierung (Serialisierung) der URI gelöst werden, aber ich wünsche, dass dies meine letzte Zuflucht sein wird.
Wichtige Bearbeiten - Antwort
So stellt sich die oben heraus ist ein Bug im Rahmen der derzeit getestet wird und hoffentlich fixiert und in Kürze veröffentlicht. Ich habe das Problem vorübergehend gelöst, indem ich den URI serialisiert habe, bevor er die Serverseite erreicht.
Sie dürfen Ihre eigenen Fragen beantworten und Ihre eigene Antwort akzeptieren^_^ –
Das Übergeben einer URL als Teil einer erholsamen URL ist nicht die beste Lösung ... Ich empfehle Ihnen stattdessen, einen get-Parameter zu verwenden. –