SELFPHP

SELFPHP-Druckversion
Original Adresse dieser Seite:
http://www.selfphp.de/praxisbuch/praxisbuchseite.php?site=179&group=31&page=2
© 2001-2017 E-Mail SELFPHP OHG, info@selfphp.de
© 2005-2017 E-Mail PHP5 Praxisbuch - Matthias Kannengiesser, m.kannengiesser@selfphp.de


URL- und HTML-spezifische Zeichenkettenfunktionen


Die Funktionen dieser Gruppe werden benötigt, wenn mithilfe der HTTP-Methode GET Daten mit entsprechenden Sonderzeichen im Query-String via URL übertragen werden sollen. Ein weiterer Anwendungsbereich dieser Funktion ist, wenn Zeichen, die in HTML eine besondere Bedeutung haben, z. B. < und >, auf einer HTML-Seite dargestellt werden sollen, ohne dass der Browser diese Zeichen als HTML-Sonderzeichen interpretiert.

FunktionBeispielBeschreibung
get_meta_tags($file)$array = get_meta_tags("inhalt.htm")Extrahiert <META>-Tags und gibt diese in einem Array zurück.
htmlentities($str [, quote_style [, charset]])$str1 = htmlentities($str)Konvertiert HTML- und Sonderzeichen, um die Interpretation zu verhindern. Für quote_style kann eine der folgenden Konstanten verwendet werden.
  • ENT_COMPAT – Konvertiert doppelte Anführungszeichen und behält einfache Anführungszeichen bei (Standard).
  • ENT_QUOTES – Konvertiert doppelte und einfache Anführungszeichen.
  • ENT_NOQUOTES – Lässt doppelte und einfache Anführungszeichen unkonvertiert.
htmlspecialchars_decode($str, [quote_style])$str1 = htmlspecialchars_decode($str)Diese Funktion ist das Gegenstück zu htmlspecialchars(). Sie konvertiert besondere HTML-Auszeichnungen zurück in Buchstaben. Für den quote_style gelten die gleichen Konstanten wie bei htmlentities().
htmlspecialchars($str [, quote_style [, charset]])$str1 = htmlspecialchars ($str)Konvertiert HTML-Zeichen, wie & " ' < >, um die Interpretation zu verhindern. Für den quote_style gelten die gleichen Konstanten, wie bei htmlentities().
nl2br($str)echo nl2br($str1)Wandelt Zeilenumbrüche in <BR>-Tags um.
parse_str($str)parse_str($str1)Zerlegt den Query_String in seine Variablen.
parse_url($url)$array = parse_url($url)Zerlegt die URL in ihre einzelnen Bestandteile. Als Rückgabewert dieser Funktion erhalten Sie ein assoziatives Array mit den einzelnen Bestandteilen der URL.
rawurldecode($str)echo rawurldecode($str1)Wandelt Zeichenketten, die durch rawurlencode() kodiert wurden, in eine normale Zeichenkette um.
rawurlencode($str)echo rawurlencode($str1)Konvertiert die Umlaute und Sonderzeichen einer Zeichenkette in Prozentzeichen und den zweistelligen, hexadezimalen ASCII-Wert zur Verwendung in einer URL.
strip_tags($str[,allow_tags)echo strip_tags($str1)Entfernt HTML- und PHP-Tags. Mithilfe des optionalen Parameters allow_tags können bestimmte HTML- und PHP-Tags als zulässig festgelegt werden.
urldecode($str)echo urldecode($str1)Wandelt eine Zeichenkette um, welche über eine URL übermittelt oder mit der Funktion urlencode() kodiert wurde.
urlencode($str)echo urlencode($str1)Konvertiert die Umlaute und Sonderzeichen einer Zeichenkette in Prozentzeichen und den zweistelligen, hexadezimalen ASCII-Wert zur Verwendung in einer URL.
wordwrap($str,$pos,$sep)$str = wordwrap($text, $length,$sep);Bricht die Zeilen des Strings $str an der mittels $pos angegebenen Position um. Diese Zeilenumbrüche werden mit dem im (optionalen) Parameter $sep spezifizierten Steuerzeichen durchgeführt.


Einsatz von htmlspecialchars()

Ein dieser Funktion übergebener String wird von der Funktion so umgewandelt, dass HTML-spezifische Sonderzeichen vom Browser nicht mehr als solche behandelt, sondern als normale Zeichen ausgegeben werden.

Das folgende Beispiel demonstriert dieses Verhalten. Wenn Sie den String des folgenden Skripts mit echo() im Browser ausgeben wollen, werden Sie zunächst gar nichts sehen. Dies liegt daran, dass der Browser die Zeichen < und > als HTML-Sonderzeichen zur Kennzeichnung von HTML-Tags interpretiert, wodurch der Inhalt des Strings zur Definition eines HTML-Grundgerüsts ohne weiteren Inhalt wird, was im Browser zu keiner Anzeige führt. Soll der String dennoch angezeigt werden, muss er vor der Ausgabe so umgewandelt werden, dass die Sonderzeichen ihre HTML-spezifische Bedeutung verlieren. Diese Aufgabe erledigt htmlspecialchars().{PSP}Beispiel

<?php
$html = '<html>
<head>
<title>HTML</title>
<meta name="author" content="Caroline K">
</head><body bgcolor="#FFFFFF" text="#000000">Test</body>
</html>';
echo $html;
?>

Der vorstehende echo()-Befehl erzeugt erwartungsgemäß keine Ausgabe. Wird $html vor der Ausgabe im Browser mit htmlspecialchars() konvertiert, verlieren die Sonderzeichen < und > ihre HTML-spezifische Bedeutung, sodass die Zeichenfolge nun tatsächlich angezeigt wird.

echo htmlspecialchars($html);

Ausgabe
<html> <head> <title>HTML</title> <meta name="author" content="Caroline K"> </head><body bgcolor="#FFFFFF" text="#000000">Test</body> </html>


Einsatz von htmlentities()

Die Funktion htmlentities() kann für die gleiche Aufgabe verwendet werden. Der Unterschied zwischen htmlspecialchars() und htmlentities() besteht darin, dass htmlentities() zusätzlich zu den von htmlspecialchars() umgewandelten Zeichen < > & " ' auch Umlaute und andere Sonderzeichen konvertiert.

Beispiel

<?php
$html = "Übung";
// Ausgabe (Quelltext) – Übung
echo htmlentities($html);
?>


Einsatz von rawurlencode()

Die Funktion konvertiert die Umlaute und Sonderzeichen einer Zeichenkette in Prozentzeichen, gefolgt von dem zugehörigen zweistelligen, hexadezimalen ASCII-Wert, um zu ermöglichen, dass der String in einer URL verwendet werden kann.

Zum Beispiel wird auf diese Weise das im String des folgenden Skripts enthaltene Sonderzeichen &, das in einer URL eine Sonderbedeutung hat, in das Zeichen %26 umgewandelt, wodurch es diese spezielle Bedeutung verliert. Die in einer URL nicht zulässigen Leerzeichen werden auf diese Weise in %20 umgewandelt.

Beispiel

<?php
$teilurl = "wert ein&wert zwei";
echo rawurlencode($teilurl);
?>

Ausgabe
wert%20ein%26wert%20zwei


Einsatz von rawurldecode()

Mithilfe der Funktion rawurldecode() kann die Konvertierung von rawurlencode() wieder rückgängig gemacht werden.

Beispiel

<?php
$teilurl = "wert%20ein%26wert%20zwei";
echo rawurldecode($teilurl);
?>

Ausgabe
wert ein&wert zwei
{PSP}Einsatz von nl2br()

Diese Funktion ersetzt sämtliche Zeilenumbrüche in der Zeichenkette durch einen HTML-Zeilenumbruch <br>. Sie wird z. B. verwendet, wenn Daten, die aus Multi-Line-Feldern von Datenbanken stammen, HTML-gerecht aufbereitet werden sollen.

Beispiel

<?php
$datenbankinhalt = "Hier ein
Umbruch aus
einer Datenbank";
echo nl2br($datenbankinhalt);
?>

Ausgabe
Hier ein
Umbruch aus
einer Datenbank

Ausgabe – Quelltext
Hier ein<br />
Umbruch aus<br />
einer Datenbank


Einsatz von parse_url()

Die Funktion zerlegt die URL in ihre einzelnen Bestandteile. Als Rückgabewert dieser Funktion erhalten Sie ein assoziatives Array mit den einzelnen Bestandteilen der URL. Diese Bestandteile bestehen aus:

Beispiel

<?php
$urltotal = "matze:123@www.atomicscript.de:8000/info.php?signal=eins#unten";

$urlarray = parse_url($urltotal);

foreach ($urlarray as $key=>$element) {
  echo "$key => $element<br>";
}
?>

Ausgabe
scheme => http
host => www.atomicscript.de
port => 8000
user => matze
pass => 123
path => /info.php
query => signal=eins
fragment => unten