php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2009

 
 
LinkBack Themen-Optionen
Alt 26.03.2009, 09:13  
Erfahrener Benutzer
 
Registriert seit: 04.03.2009
Beiträge: 230
Sermon befindet sich auf einem aufstrebenden Ast
Standard [Erledigt] Umlaute und Sonderzeichen decodieren

Moin.

Folgende Sache. Und zwar lese ich eine XML aus und schreibe die Werte in eine Datenbank.
Funktioniert soweit fast einwandfrei
Und zwar gibt es in der XML zum einem umlaute und zum anderem Sonderzeichen, die so maskiert sind: "'"
Jetzt folgende frage. Wenn ich die Inhalte auslese und dann in die DB schreiben will, kriege ich einen Error bei dem Apostroph. Ist die frage, ob ich das anders codieren kann. Irgendwie mit utf8_decode etc.
Und die andere Sache ist auch noch, dass die Umlaute ziemlich schräg in der DB dargestellten werden. Beispiel: "Gesprächsführung" -> "Gesprächsführung".
kann mir da jemand helfen?

Hier noch der Code:
PHP-Code:
$doc = new DOMDocument();
        
$doc->load("upload/".$newFileName);
                    
        
$itemstitel1 $doc->getElementsByTagName("Semtitel1");
        for (
$i 0$i $itemstitel1->length$i++)
        {
            
$temptitel1 $itemstitel1->item($i)->nodeValue;
            
mysql_query("INSERT INTO agw_temp (Semtitel1) VALUES ('$temptitel1')") or exit (mysql_error());
        } 
Das ist außerdem nur ein kleiner auszug. ich sprech ca. 60 Elemente an. Dann ist die Query auch länger. Aber aufgebaut ist es so. Das sollte zur Verdeutlichung reichen.

EDIT:
Ich habe mir nochmals den Rat von David zu Herzen genommen, und mir seinen link genau angeguckt, den er gepostet hat, zu charset. Und siehe da, es geht.
Zumindest mit den Umlauten. Die Sonderzeichen probiere ich auch noch gerade aus.
Danke an David!!!
Hier nochmal der link, falls jemand das selbe Problem haben sollte.
charset-connection

Also: Die umlaute kriege ich hin. Allerdings die Sonderzeichen nicht. Da kracht es. Weiß noch einer einen rat?
__________________

Geändert von Sermon (26.03.2009 um 10:34 Uhr).
Sermon ist offline  
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 26.03.2009, 12:42  
Forenpolitikum
 
Registriert seit: 21.05.2008
Beiträge: 45.960
PHP-Kenntnisse:
Fortgeschritten
nikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehen
Standard

UTF-8 benutzen. Verfügt über einen größeren Zeichenraum.
__________________
--
^^ O.O
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


--
nikosch ist offline  
Alt 26.03.2009, 12:47  
Erfahrener Benutzer
 
Registriert seit: 04.03.2009
Beiträge: 230
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Danke für den tipp. Das mache ich aber auch schon.
Bevor ich die query starte sage ich:
PHP-Code:
mysql_set_charset(utf8); 
__________________
Sermon ist offline  
Alt 26.03.2009, 12:49  
Forenpolitikum
 
Registriert seit: 21.05.2008
Beiträge: 45.960
PHP-Kenntnisse:
Fortgeschritten
nikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehen
Standard

Und Dein Script und die DB sind auch in UTF-8? Wenn ja, welche Sonderzeichen gehen denn nicht?
__________________
--
^^ O.O
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


--
nikosch ist offline  
Alt 26.03.2009, 12:53  
Erfahrener Benutzer
 
Registriert seit: 04.03.2009
Beiträge: 230
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Also Db ist in UTF8. mein Script... Ehrlich gesagt, in was soll es denn sein? is doch egal.
da ich die Werte aus der ausgelesenen XML in die DB schreibe.
Und das steht sowas drin wie z.b.
So ist's recht!
Und sowas wie ' oder & das möchte ich in die datenbank schreiben. Allerdings natürlich dann nciht als code, sondern als Zeichen. Wie das Apostroph ` oder das UND-Zeichen &
Vor allem kann ich es nciht in die Datenbank schreiben, weil er mir beim schreiben einen Error wirft.
__________________
Sermon ist offline  
Alt 26.03.2009, 13:05  
Forenpolitikum
 
Registriert seit: 21.05.2008
Beiträge: 45.960
PHP-Kenntnisse:
Fortgeschritten
nikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehen
Standard

Ach Dir geht es um die Entities? Versuch doch mal html_entity_decode. Wenn Dein xml natürlich noch andere entities definiert, mußt Du dir ein search/replace schreiben.
__________________
--
^^ O.O
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


--
nikosch ist offline  
Alt 26.03.2009, 13:10  
Erfahrener Benutzer
 
Registriert seit: 04.03.2009
Beiträge: 230
Sermon befindet sich auf einem aufstrebenden Ast
Standard

ok ich werde es mal probieren. danke
Also irgendwie klappt das noch nicht so ganz...
Hab jetzt folgendes probiert:
PHP-Code:
$doc = new DOMDocument();
                    
$doc->load("upload/".$newFileName);
$doc = new DOMDocument();
                    
$doc->load("upload/".$newFileName);
for (
$i 0$i $itemstitel2->length$i++)
                    {
$temptitel2 html_entity_decode($itemstitel2->item($i)->nodeValue);
mysql_set_charset(utf8);
                        
mysql_query("INSERT INTO agw_temp
                        (Semtitel2) VALUES('$temptitel2')"
) or exit (mysql_error());

Fehler: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 's recht!', 'Elektro-Hydraulik in Theorie und Praxis', '6065', '40', 'Mo. - Fr.',' at line 7

Und das 's recht!' habe ich mal in der XML gesucht und es steht genau ' davor.
Brauche also ncoh etwas Hilfe...
__________________

Geändert von Sermon (26.03.2009 um 14:20 Uhr).
Sermon ist offline  
Alt 26.03.2009, 18:21  
Erfahrener Benutzer
 
Registriert seit: 25.03.2009
Beiträge: 126
PHP-Kenntnisse:
Fortgeschritten
jw-lighting befindet sich auf einem aufstrebenden Ast
Standard

mysql_real_escape_string() anwenden
jw-lighting ist offline  
Alt 26.03.2009, 18:40  
Forenpolitikum
 
Registriert seit: 21.05.2008
Beiträge: 45.960
PHP-Kenntnisse:
Fortgeschritten
nikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehennikosch genießt hohes Ansehen
Standard

Genau. Im Zweifel hat immer die Fehlermeldung recht.
__________________
--
^^ O.O
„Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“


--
nikosch ist offline  
Alt 27.03.2009, 08:18  
Erfahrener Benutzer
 
Registriert seit: 04.03.2009
Beiträge: 230
Sermon befindet sich auf einem aufstrebenden Ast
Standard

Besten dank! Läuft xD
__________________
Sermon ist offline  
 


Themen-Optionen


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Umlaute und MySQL4.1 Datenbanken 2 15.11.2009 15:28
Umlaute im Mailfomular werden falsch angezeigt macstef PHP Tipps 2008 5 29.12.2008 10:34
Umlaute und str_replace MatzeMuc86 PHP Tipps 2008 20 22.10.2008 20:41
Umlaute in Datenbank zerschossen. Wie reparieren? MatzeMuc86 Datenbanken 1 14.09.2008 17:48
Umlaute in Datenbank Eldra PHP Tipps 2008 3 14.05.2008 07:11
Ajax und Sonderzeichen? GSJLink HTML, Usability und Barrierefreiheit 1 11.11.2006 14:36
Die Sache mit den Sonderzeichen nach und vor Formularprüfung TailerD PHP Tipps 2006 12 02.06.2006 12:58
Umlaute bei Linux flual2000 PHP Tipps 2006 10 28.04.2006 13:12
[Erledigt] Keine Umlaute beim MediaWiki im Internet Explorer PHP Tipps 2006 1 15.02.2006 18:50
Wikipedia, Sonderzeichen und file_get_contents(); pb PHP Tipps 2006 2 20.01.2006 20:02
Umlaute... JK PHP-Fortgeschrittene 7 07.12.2005 20:55
[Erledigt] Umlaute in Dateien per CLI in HTML-Entities umwandeln PHP-Fortgeschrittene 5 19.07.2005 09:06
Umlaute in HTML - konforme Form umwandeln Stümper PHP Tipps 2005 19 30.05.2005 08:42
Sonderzeichen in der Tabelle Mutatos Datenbanken 4 17.03.2005 15:28
Sonderzeichen und Umlaute Lia PHP Tipps 2004-2 18 22.12.2004 15:59

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
umlaute decodieren, php umlaute sonderzeichen, php umlaute decodieren, xml umlaute, php umlaute codieren, xml umlaute codieren, sonderzeichen decodieren, umlaute decodieren php, php sonderzeichen decodieren, sonderzeichen codieren, php sonderzeichen codieren, php umlaute dekodieren, javascript umlaute codieren, php umlaute und sonderzeichen, php sonderzeichen umlaute, html decodieren, umlaute codieren, html sonderzeichen decodieren, sonderzeichen decodieren php, html umlaute decodieren

Alle Zeitangaben in WEZ +1. Es ist jetzt 22:16 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum