Die Antwort dürfte, wie so oft, utf8 heissen. Info dazu findest Du im angepinnten Wichtigte PHP Tipps Thread.
Hi, hab angefangen per simplexml eine xml Datei aus zu lesen, aber die Umlaute und Sonderzeichen werden nicht vernünftig ausgegeben. Woran kann das liegen? An der Formatierung der xml Datei?
So sieht meine Ausgabe aus:
... für länger! Also machts gut! Grüße!
So sieht meine Programmierung aus:
GrüßePHP-Code:$xml = simplexml_load_file($filename);
$id = $_GET['id'];
foreach($xml->news as $news) {
if($news->id == $id) {
$ueberschrift=$news->title;
$text=$news->description;
$datum=$news->date;
$autor=$news->author;
echo '<div style="width: 90%; margin-left: 15px;"><h1>'.$ueberschrift.'</h1><p>'.$text.'</p><p class="small">'.$datum.' | <span style="color:#990000">'.$autor.'</span></p></div>'; }
}
Die Antwort dürfte, wie so oft, utf8 heissen. Info dazu findest Du im angepinnten Wichtigte PHP Tipps Thread.
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
Ich hab mir das mal mit UTF-8 mal angeschaut, meinen Header in jeder Datei ausgetausch usw., aber es ist noch schlimmer geworden, seit dem ich mit utf-8 arbeite. Was ist das Problem?
Code:<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <system> <news> <id>3</id> <title>Erstes</title> <author>DG</author> <description>Text</description> <date>13.07.2008</date> </news> </system>ThnxPHP-Code:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>...</title>
<link rel="stylesheet" href="style/sheet.css" type="text/css" media="screen" />
</head>
<body>
<div id="paper"><?php
$filename = 'news.xml';
if(file_exists($filename)) {
$xml = simplexml_load_file($filename);
$id = $_GET['id'];
foreach($xml->news as $news) {
if($news->id == $id) {
$ueberschrift=$news->title;
$text=$news->description;
$datum=$news->date;
$autor=$news->author;
echo '<div style="width: 90%; margin-left: 15px;"><h1>'.utf8encode($ueberschrift).'</h1><p>'.utf8encode($text).'</p><p class="small">'.utf8encode($datum.)' | <span style="color:#990000">'.utf8encode($autor).'</span></p></div>'; }
}
}
include("../inc/footerpaper.inc.php");
?>
An diesem XML Beispiel wird man wohl kaum den Fehler lokalisieren können. Wichtig ist, dass die XML selbst utf8 enkodiert abgespeichert wurde, sonst tritt bereits hier der Fehler auf. Dann sollte im PHP Script als erstes ein utf8 Header gesendet werden. Beides steht aber bereits im erwähnten PHP Tipps Thread.
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
utf8encode: damit kodierst Du utf8 nochmal, dann ist auch klar warum da Murcks bei raus kommt.
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Auch ohne das utf8encode() kommt murks raus. Ich hab die xml Datei neu geschrieben, auch im UTF-8 Format Unicode, habs extra noch mal eingestellt. Der php code sieht so aus:Und so sieht der Fehler aus:PHP-Code:$filename = 'news.xml';
if(file_exists($filename)) {
$xml = simplexml_load_file($filename);
$id = $_GET['id'];
foreach($xml->news as $news) {
if($news->id == $id) {
$ueberschrift=$news->title;
$text=$news->description;
$datum=$news->date;
$autor=$news->author;
echo '<div style="width: 90%; margin-left: 15px;"><h1>'.$ueberschrift.'</h1><p>'.$text.'</p><p class="small">'.$datum.' | <span style="color:#990000">'.$autor.'</span></p></div>'; }
}
}
wobei ich bei die index.php datei die gleiche Programmierung hat. Zeile 82 ist:Warning: simplexml_load_file() [function.simplexml-load-file]: pages/news.xml:1: parser error : Start tag expected, '<' not found in index.php on line 82xml nochmal:PHP-Code:$xml = simplexml_load_file($filename);
Code:<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <system> <news> <id>3</id> <title>Erstes</title> <author>DG</author> <description>jhjhjhj</description> <date>13.07.2008</date> </news> </system>
Schrieb Rizzo im übrigen, das hast du auch noch nicht gemacht.Dann sollte im PHP Script als erstes ein utf8 Header gesendet werden.
“My software never has bugs. It just develops random features ...”
» DevShack - die Website des freien Webentwicklers Boris
#.Viele Grüße - Andreas
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
PHP Tutorials und kostenlose Scripts gibt's bei phpBuddy.eu
Follow phpBuddy on Twitter
LTFB - anfängerfreundliche Tutorials
.
Warning: simplexml_load_file() [functi ...
damit wurde schon vorher ein Header gesendet, der Deine Header unwirksam macht.
Häng doch mal zum Versuch ein @ rein
ausserdem klingt das nach einem defektem xml-file. Einfach mal Inhalt kopieren und eine neue Datei erstellen, am Besten als utf8 speichern.PHP-Code:$xml = @simplexml_load_file($filename);
TYPO3 · MySQLDumper · dislabs
·
manche Mühlen mahlen schneller ...
"Ich habe Rücken"
Horst Schlämmer
Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)