Chrissyx Homepage Forum
Register FAQ Search Who is online? Member list Today's posts Login

Willkommen bei Chrissyx Homepage Forum! Falls dies Ihr erster Besuch hier ist, lesen Sie sich bitte die Hilfe mit den häufigsten Fragen und ausführlichen Erklärungen durch! Falls Sie an den Diskussionen teilnehmen wollen, sollten Sie sich registrieren oder, falls Sie das schon getan haben, sich einloggen. Wir wünschen Ihnen viel Spaß!

 Chrissyx Homepage Forum » Entwicklung » [PHP] Umlaute etc. umwandeln   

Author Topic: [PHP] Umlaute etc. umwandeln
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on June 25, 2008 12:39 PM (#1) HP PM E-mail Quote
Hi,

ich wollte mal fragen ob es in php eine Funktion gibt, die alle Umlaute, Sonderzeichen, etc. automatisch in "HTML-Zeichen" wie & ü usw. umwandelt?

Danke!

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on June 25, 2008 01:05 PM (#2) HP PM E-mail Quote
Aber sicher: Normalerweise würdest Du htmlspecialchars() nehmen, da Du aber scheinbar alle Zeichen konvertiert haben willst, ist htmlentities() das Richtige für dich. ;)

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on June 25, 2008 01:14 PM (#3) HP PM E-mail Quote
Danke, genau das was ich gesucht hab =)

//Edit, ich war vielleicht etwas voreilig, die Umlaute werden bei mir nach wie vor falsch dargestellt (der Rest funktioniert). Gibts denn eine Möglichkeit ü,ä,ö auch umzuwandeln?

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on June 25, 2008 01:31 PM (#4) HP PM E-mail Quote
Inwiefern falsch? Oder zeig mal, wie dein Aufruf aussieht.

EDIT: Weil eigentlich sollte die zuletzt genannte Funktion auch Umlaute umwandeln.

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on June 25, 2008 01:37 PM (#5) HP PM E-mail Quote
Code:

echo (htmlspecialchars("Ü Ä Ö ü ä ö ß"););


Ausgabe:
Quote:

Ü Ä Ö ü ä ö ß


Andere Zeichen wie " < & etc. werden richtig umgewandelt.

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on June 25, 2008 01:40 PM (#6) HP PM E-mail Quote
Das ist aber kein Fehler der Funktion, sondern Sache der Darstellung deines Browsers. Im Prinzip tritt dies auf, wenn mit der Codierung was nicht stimmt - hier sieht's danach aus, als ob UTF-8 codierte Zeichen in z.B. einer Latin-1 Umgebung angezeigt werden.

EDIT: Oder spuckt die Funktion wirklich diese Zeichen aus? Weil dann dürfte PHP-intern was nicht mit den Charset-Einstellungen stimmen. Da kannst Du mal probieren, den dritten Parameter explizit anzugeben. :)

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on June 25, 2008 01:45 PM (#7) HP PM E-mail Quote
Ich hab UTF-8 explicit angegeben -> selbes Problem... Und &uuml; spuckt er auch als ü aus...

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on June 25, 2008 01:56 PM (#8) HP PM E-mail Quote
Hmm^^ Guck dir nochmal das Beispiel an:

<?php
$str = "Ein 'Anführungszeichen' ist <b>fett</b>";
echo htmlentities($str, ENT_QUOTES, 'UTF-8') . "<br>\n";
echo htmlentities($str, ENT_QUOTES, 'ISO-8859-1');
?>


Ergibt:

Ein &#039;Anführungszeichen&#039; ist &lt;b&gt;fett&lt;/b&gt;<br>
Ein &#039;Anf&uuml;hrungszeichen&#039; ist &lt;b&gt;fett&lt;/b&gt;


Jetzt die Verwendung von Charset klar? ;)

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on June 25, 2008 02:04 PM (#9) HP PM E-mail Quote
Hm, so gehts wirklcih... aber warum ist das so, dass es mit utf8 nicht geht? ^^

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Achievements
Posted on June 25, 2008 07:07 PM (#10) HP PM E-mail Quote
Weil Du da was durcheinander bringst:
Quote:
steht das optionale dritte Argument charset zur Verfügung, das den für die Konvertierung benötigten Zeichensatz definiert.

D.h. Du gibst damit an, welcher Zeichensatz die Eingabe hat und nicht, was die Ausgabe haben soll. ;) Da ISO-8859-1 der Standard ist, brauchst Du den dritten Parameter eigentlich noch nicht mal angeben.
Wenn Du Konvertierung nach UTF-8 suchst, guck dir mal utf8_encode() an. Hinweis: Geht nicht mit dem €-Symbol.

-----------------------


Posts: 15849 | Member since: November 2002 | IP address: saved
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Achievements
Posted on June 26, 2008 10:07 AM (#11) HP PM E-mail Quote
Ok, jetzt ist es klar soweit... Danke =)

-----------------------
Posts: 3835 | Member since: November 2004 | IP address: saved

  

| Chrissyx Homepage | Board rules


Tritanium Bulletin Board 1.6
© 2010–2016 Tritanium Scripts


Site created in 0.599360 seconds
Processed 16 files
gzip compression enabled
3031.66 KiB memory usage