Uniform Resource Identifier

Eine Uniform Resource Identifier - kurz URI - ist die englische Abkürzung für "einheitlicher Bezeichner für Ressourcen". Das Schema einer URI sieht folgendermassen aus

URI = scheme ":" hier-part [ "?" query ] [ "#" fragment ]

Dabei steht hier-part für eine optionale authority und den path. Ist eine Authority vorhanden, beginnt sie mit zwei Schrägstrichen, und der Pfad muss mit einem Schrägstrich beginnen. Nach dem aktuellen Standard RFC 3986 besteht ein URI aus fünf Teilen:

  foo://example.com:8042/over/there?name=ferret#nose
  \_/   \______________/\_________/ \_________/ \__/
   |           |            |            |        |
scheme     authority       path        query   fragment
   |   _____________________|__
  / \ /                        \
  urn:example:animal:ferret:nose

Nur das Schema und der Pfad müssen in jedem URI vorhanden sein.

  • scheme (Schema)
  • authority (Anbieter)
  • path (Pfad)
  • query (Abfrage)
  • fragment (Teil)

Einige Beispiele für unterschiedliche URI:

Neue URI erstellen

Über die Klasse \Alvine\Net\Resource\URI wird ein neues URI Objekt erstellt. Beispiel für eine MYSQL URI

$uri = new \Alvine\Net\Resource\URI('mysql://{NAME}:{PASSWORT}@192.168.1.00/{DATENBANK}/{TABELLE}');
echo (string)$uri;
// Ergebnis -> mysql://{NAME}:{PASSWORT}@192.168.1.00/{DATENBANK}/{TABELLE}

Diese Klasse bildet eine URI ab und ist im wesentlichen für Stringoperationen gedacht.

Bei der Übergabe einer URI im Konstruktor, wird diese in Ihre Einzelteile zerlegt

  • scheme
  • local
  • user
  • password
  • port
  • host
  • path
  • query
  • fragment

Mit den Funktionen getScheme, getPassword, usw. bekommt man die Teile zurück.

URI Query hinzufügen

Mit der Methode "setQueryValue" können weitere Parameter an die URL angehängt werden.

$uri = new \Alvine\Net\Resource\URI('http://www.example.com/main.html');
$uri->setQueryValue('name', 'max mustermann');
echo $uri;
// Ergebnis -> http://www.example.com/main.html?name=max%20mustermann

URI in einer HTML Seite ausgeben

Wenn man die URI in einer HTML Seite ausgeben möchte, muss man vorher das Trennzeichen ändern

$uri = new \Alvine\Net\Resource\URI('http://www.example.com/');
$uri->setQueryValue('hans','ma ns');
$uri->setQueryValue('name','frant');
$uri->setQuerySeparator('&');
echo $uri;
// Ergebnis -> http://www.example.com/?hans=ma%20ns&name=frant