Alt 07.02.2018, 20:36:47   #1 (permalink)
Erfahrener Benutzer
Benutzerbild von mydoys.de

ID: 84968
Lose-Remote

mydoys.de eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 2.730
Standard PHP x XML Umlaute darstellen..

Guten Abend,

Ich habe folgendes Problem..
Ich habe Adressdaten in einer MYSQL Datenbank bsp.:
Zitat:
Schlehenstraße 2, 01169 Dresden, Germany
Diese lese ich aus und erstelle damit eine XML Datei für mein Kartenmaterial XML kommt mit den Umlauten Ä Ü Ö ß nicht klar, wie kann ich diese jetzt umwandel das er mir diese richtig anzeigt ?

Ich habe es mit urlencode,urldecode,htmlspecialchars,htmlentities versucht ohne erfolg ..
ebenfalls, utf8_decode und utf8_encode


Derzeit :

PHP-Code:
1:
$VARIABLE_ADRESS=urlencode($row[address]); 
gibt mir :
Zitat:
Schlehenstra%DFe+2%2C+01169+Dresden%2C+Germany
macht auf der Karte komische zeichen "�"

Was muss ich tun damit die Umlaute in XML Funktionieren und auf meiner Karte richtig dargestellt werden ?




Ich hoffe man kann verstehen was ich will ...



Edit:
Ich habe mir jetzt einen Umwandler gemacht :

Code:
1:
2:
3:
4:
5:
6:
7:
function umlaute($string) function umlaute($string) { $search = array("Ä", "Ö", "Ü", "ä", "ö", "ü", "ß", "´"); $replace = array("&#.196;", "&#.214;", "&#.220;", "&#.228;", "&#.246;", "&#.252;", "ss", ""); return str_replace($search, $replace, $string); }
(Der Punkt nach der Raute ist für das Forum gedacht, weil er das sonst nicht richtig darstellt )


Klappt zwar jetzt mit der XML aber auf der Karte sind jetzt die zeichen "ü" zusehen --

Geändert von mydoys.de (07.02.2018 um 21:37:44 Uhr)
mydoys.de ist offline   Mit Zitat antworten
Alt 07.02.2018, 21:41:05   #2 (permalink)
Erfahrener Benutzer
Benutzerbild von mydoys.de

ID: 84968
Lose-Remote

mydoys.de eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 2.730
Standard

Hier mal mein Code :


PHP-Code:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
<?php
include_once '../../dbconnect.php';

error_reporting(E_ALL);
header("Content-type: text/xml; charset=utf-8");



ini_set('default_charset''UTF-8');
ini_set('exif.encode_unicode''UTF-8');


$xml = new SimpleXMLElement("<?xml version=\"1.0\" encoding=\"UTF-8\"?><markers />");

$sql "SELECT * FROM `DATENBANK_ZEUGS_2`ORDER BY `gym_id` DESC";
        
$result $con->query($sql);
            while(
$row $result->fetch_assoc()) {
                if (
$result->num_rows 0) {



    
$child $xml->addChild('marker');
    
$child->addAttribute('id'$row['gym_id']);
        
$child->addAttribute('name'$row['name']);
                
$child->addAttribute('iv'"(IV:N/A)");
                
$child->addAttribute('gdata'"http://ADRESSE-KEINE-WERBUNG.TDL/maps.php?kor=$row[latitude],$row[longitude]");
            
$child->addAttribute('address',$row['address']);
                
$child->addAttribute('lat'$row['latitude']);
                    
$child->addAttribute('lng'$row['longitude']);
                        
$child->addAttribute('type'"Arena");



}    else    {echo
"Fehler.";}


                }


$XML_AUSGABE$xml->asXML();
echo 
"$XML_AUSGABE";




?>

Zeigt :

Zitat:
This page contains the following errors:
error on line 8 at column 1: AttValue: ' expected
Below is a rendering of the page up to the first error.

Quelltext:

PHP-Code:
1:
2:
<?xml version="1.0" encoding="ISO-8859-1"?>
<markers><marker id="999999912" name="T
In der Datenbank steht unter namen "
Zitat:
Türornament Winzer
"


Es liegt an den Umlauten ... denn sobald ich das Ü in der Datenbank ersetze mit ue klappt es ...









____
EDIT


Habe jetzt den code geändert mit :

PHP-Code:
1:
2:
$VARIABLE_N=(htmlentities(utf8_encode($row['name'])));
$VARIABLE_A=(htmlentities(utf8_encode($row['address']))); 
XML Datei wird richtig erstellt, aber dafür werden jetzt die Zeichen die es Umwandelt natürlich auch umgewandelt auf meiner Karte dargestellt


Geändert von mydoys.de (07.02.2018 um 22:01:34 Uhr)
mydoys.de ist offline Threadstarter   Mit Zitat antworten
Alt 07.02.2018, 22:58:24   #3 (permalink)
Powerhamster
Benutzerbild von burnred

ID: 34739
Lose-Remote

burnred eine Nachricht über ICQ schicken burnred eine Nachricht über MSN schicken burnred eine Nachricht über Skype™ schicken
Reg: 04.05.2006
Beiträge: 683
Standard

Welchen Header hat den die XML Datei nun?
Code:
1:
<?xml version="1.0" encoding="ISO-8859-1"?>
oder
Code:
1:
<?xml version="1.0" encoding="UTF-8"?>
Welches collate haben die Spalten in der Datenbank?

Zitat:
XML Datei wird richtig erstellt, aber dafür werden jetzt die Zeichen die es Umwandelt natürlich auch umgewandelt auf meiner Karte dargestellt
Dann lass halt das htmlentities weg.
Sieht die Welt durch 3x WQHD @ 25" (DELL U2515H)
burnred ist offline   Mit Zitat antworten
Alt 09.02.2018, 10:19:21   #4 (permalink)
Erfahrener Benutzer
Benutzerbild von mydoys.de

ID: 84968
Lose-Remote

mydoys.de eine Nachricht über ICQ schicken
Reg: 20.04.2006
Beiträge: 2.730
Standard

Zitat:
Zitat von burnred Beitrag anzeigen
Dann lass halt das htmlentities weg.

Danke , das hat geholfen
mydoys.de ist offline Threadstarter   Mit Zitat antworten
Antwort

Gesponsorte Links

Anzeige


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks sind an
Pingbacks sind an
Refbacks sind an


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
[PHP/MySQL] Kategorie und Unterkategorienamen darstellen resoucer Programmierung 4 14.05.2011 15:58:00
Tabellen darstellen UncleChicken Verbesserungsvorschläge 86 24.04.2009 15:10:46
[PHP] Problem mit gif darstellen in php Drogenfahnder Programmierung 2 07.11.2006 17:24:47
[php] Backslash darstellen Anachronist Programmierung 7 21.10.2006 23:43:24


Alle Zeitangaben in WEZ +1. Es ist jetzt 14:46:46 Uhr.