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:
- http://de.wikipedia.org/wiki/Uniform_Resource_Identifier
- ftp://ftp.is.co.za/rfc/rfc1808.txt
- file:///C:/Users/Benutzer/Desktop/Uniform%20Resource%20Identifier.html
- file:///etc/fstab
- geo:48.33,14.122;u=22.5
- ldap://[2001:db8::7]/c=GB?objectClass?one
- gopher://gopher.floodgap.com
- mailto:John.Doe@example.com
- sip:911@pbx.mycompany.com
- news:comp.infosystems.www.servers.unix
- data:text/plain;charset=iso-8859-7,%be%fa%be
- tel:+1-816-555-1212
- telnet://192.0.2.16:80/
- urn:oasis:names:specification:docbook:dtd:xml:4.1.2
- git://github.com/rails/rails.git
- crid://broadcaster.com/movies/BestActionMovieEver
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