Chrissyx Homepage Forum
Registrieren FAQ Suche Wer ist online? Mitgliederliste Heutige Beiträge Kalender Einloggen

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   

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



284-199-061
Errungenschaften
Erstellt am 25. Juni 2008 12:39 (#1) HP PN E-Mail Zitat
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!

-----------------------
Beiträge: 3847 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 25. Juni 2008 13:05 (#2) HP PN E-Mail Zitat
Aber sicher: Normalerweise würdest Du htmlspecialchars() nehmen, da Du aber scheinbar alle Zeichen konvertiert haben willst, ist htmlentities() das Richtige für dich. ;)

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


Beiträge: 15976 | Mitglied seit: November 2002 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 25. Juni 2008 13:14 (#3) HP PN E-Mail Zitat
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?

-----------------------
Beiträge: 3847 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 25. Juni 2008 13:31 (#4) HP PN E-Mail Zitat
Inwiefern falsch? Oder zeig mal, wie dein Aufruf aussieht.

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

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


Beiträge: 15976 | Mitglied seit: November 2002 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 25. Juni 2008 13:37 (#5) HP PN E-Mail Zitat
Code:

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


Ausgabe:
Zitat:

Ü Ä Ö ü ä ö ß


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

-----------------------
Beiträge: 3847 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 25. Juni 2008 13:40 (#6) HP PN E-Mail Zitat
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. :)

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


Beiträge: 15976 | Mitglied seit: November 2002 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 25. Juni 2008 13:45 (#7) HP PN E-Mail Zitat
Ich hab UTF-8 explicit angegeben -> selbes Problem... Und &uuml; spuckt er auch als ü aus...

-----------------------
Beiträge: 3847 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 25. Juni 2008 13:56 (#8) HP PN E-Mail Zitat
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? ;)

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


Beiträge: 15976 | Mitglied seit: November 2002 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 25. Juni 2008 14:04 (#9) HP PN E-Mail Zitat
Hm, so gehts wirklcih... aber warum ist das so, dass es mit utf8 nicht geht? ^^

-----------------------
Beiträge: 3847 | Mitglied seit: November 2004 | IP-Adresse: gespeichert
Chrissyx
Dipl.-Inf. Admin
Redakteur
******
ID # 1



109-273-268
Errungenschaften
Erstellt am 25. Juni 2008 19:07 (#10) HP PN E-Mail Zitat
Weil Du da was durcheinander bringst:
Zitat:
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.

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


Beiträge: 15976 | Mitglied seit: November 2002 | IP-Adresse: gespeichert
daniel
Inglourious Admin
Redakteur
******
ID # 729



284-199-061
Errungenschaften
Erstellt am 26. Juni 2008 10:07 (#11) HP PN E-Mail Zitat
Ok, jetzt ist es klar soweit... Danke =)

-----------------------
Beiträge: 3847 | Mitglied seit: November 2004 | IP-Adresse: gespeichert

  

| Chrissyx Homepage | Boardregeln | Datenschutzerklärung


Tritanium Bulletin Board 1.10
© 2010–2024 Tritanium Scripts


Seite in 0,029245 Sekunden erstellt
17 Dateien verarbeitet
gzip Komprimierung eingeschaltet
733,21 KiB Speichernutzung