php.de

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

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 12.01.2005, 19:37  
Gast
 
Beiträge: n/a
Standard UTF8-XML ... Fehler beim auslesen

moin moin,

ich bekomme beim auslesen einer xml seite mit:

<?xml version="1.0" encoding="utf-8" ?> fehler.

Ich lese die Datei mit folgenden scrip aus:

PHP-Code:
<?php 
$rdffile 
"hier steht die url der xml seite"
$content implode (""file ($rdffile)); 
 
preg_match_all("|<product>(.*)</product>|Uism",$content$itemsPREG_PATTERN_ORDER); 
 for (
$i=0;$i<count($items[1]);$i++) 
 { 
preg_match_all(
"|<name>(.*)</name>(.*)<description>(.*)</description>(.*)<imageUrl>(.*)</imageUrl>(.*)<productUrl>(.*)</productUrl>(.*)<price>(.*)</price>(.*)<currency>(.*)</currency>|Uism",$items[1][$i], $regsPREG_PATTERN_ORDER); 
echo 
"[img]".$regs[5][0]."[/img]
<h1>"
.utf8_decode($regs[1][0])."</h1>
"
.utf8_decode($regs[3][0])."

Preis: "
.utf8_decode($regs[9][0])."
"
.utf8_decode($regs[11][0])."


 [url='"
.utf8_decode($regs[7][0])."']Klicken Sie hier für alle Details[/url]






\n"
; } 
 
?>
der text sieht dann so aus:


Intel&amp;reg; Pentium&amp;reg; D Prozessor 710 (1.40 GHz, 2 MB Cache, 400 MHz FSB)+15.0 XGAMicrosoft&amp;reg; Windows&amp;reg; XP Home


was muss ich am script ändern um eine richtige darstellung zu bekommen?

vielen dank für eure hilfe!
p.s. : ich habe das forum schon durchsucht und keine antwort gefunden :wink:
 
Sponsor Mitteilung
PHP Code Flüsterer

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

Alt 12.01.2005, 19:43  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

Was heisst "Du bekommst Fehler"?
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 12.01.2005, 19:47  
Gast
 
Beiträge: n/a
Standard

sorry, ich bekomme nicht wirklich fehler im sinne eines scriptfehlers!

der text wird im gunde nicht decordiert und wird wie folgt dargestellt


Intel&amp;reg; Pentium&amp;reg; D Prozessor 710 (1.40 GHz, 2 MB Cache, 400 MHz FSB)+15.0 XGAMicrosoft&amp;reg; Windows&amp;reg; XP Home


die sonderzeichen werden nicht umgesetzt. irgendwas mach ich falsch
 
Alt 12.01.2005, 19:49  
Erfahrener Benutzer
 
Registriert seit: 21.12.2004
Beiträge: 5.235
PHP-Kenntnisse:
Fortgeschritten
mepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblickmepeisen ist ein wunderbarer Anblick
mepeisen eine Nachricht über ICQ schicken mepeisen eine Nachricht über Skype™ schicken
Standard

OK, habe ich überlesen

Hmmm. Da war doch was.... *grübel*
Ich such mal was. Falls hier sonst keiner gerade die zündende Idee hat, habe ich demnächst (oder erst in ein paar Stunden) ein Script- Beispiel von mir auf den CDs gefunden, wo ich sowas "umgangen" habe bzw. richtig gemacht habe...
__________________
www.php-maven.org PHP und Maven vereint: Build/Deploy/Produktion/Konfiguration, Projekt Management, CI, PHPUnit, zahlreiche Frameworks
Twitter @ https://twitter.com/#!/mepeisen und Facebook @ http://t.co/DZnKSUih
mepeisen ist offline  
Alt 12.01.2005, 19:55  
Gast
 
Beiträge: n/a
Standard

das wäre supi-fein
 
Alt 12.01.2005, 20:37  
Gast
 
Beiträge: n/a
Standard

PHP-Code:
<?php
function html2specialchars($str){
   
$trans_table array_flip(get_html_translation_table(HTML_ENTITIES));
   return 
strtr($str$trans_table);

?>
hm?
 
Alt 12.01.2005, 21:40  
Gast
 
Beiträge: n/a
Standard

öhmmmm

kannst du mir das mal bitte in mein script einbauen oder mir sagen wie ich das einbinden muss? ich habe schon einiges versucht aber bekomme es nicht hin.
ich bin nicht so der php held
 
Alt 13.01.2005, 00:52  
Moderator
 
Benutzerbild von robo47
 
Registriert seit: 03.09.2004
Beiträge: 11.792
PHP-Kenntnisse:
Fortgeschritten
robo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz seinrobo47 kann auf vieles stolz sein
Standard

also wenn du php > 4.3.0 hast, kannst du direkt html_entity_decode() benutzen und wo ist jetzt dein problem? du nimmst den string den du aus der xml-datei hast, der wird ja wohl in einer variable stehen und sagst:

$string = html_entity_decode($string);

dann enhält $string den Inhalt von $string von vorher nur dass die html-zeichen normal dargestellt sind. allerdings ist das reg; das überall vorkommt keins, darum musst du dich wohl gesondert kümmern (ersetzen oder löschen).

mfg
robo47
robo47 ist offline  
Alt 13.01.2005, 02:21  
Gast
 
Beiträge: n/a
Standard

Emmmmmm vielleicht faellt ja einem auf, das in XML Dokumenten & durch ein &amp; dargestellt werden muessen ... sprich aus dem guten alten &Auml; wird ein &amp;Auml; . Wenn du jetzt also die Sonderzeichen haben willst, musst du nur &amp; wieder in & umwandeln und gut is ...

$string = str_replace ( "&amp;" , "&" , $string ) ;

Das schoene dabei ist dann, dass du sogar immer noch alle Sonderzeichen als htmlentities vorliegen hast und dir keine grossen Sorgen mehr um das Charset machen musst.

Aber mal als kleinen Tipp:
Wenn du den Regexp so aufbaust "<product>(.*)</product>" matcht der NFA immer vom ersten <product> bis zum letzten </product> in deinem Dokument (sprich du kriegt immer nur einen Treffer. Um das ganze etwas zu beschleunigen und den Effekt zu umgehen kannst du

a) Wenn das Dokument wirklich valide ist diesen Regexp benutzen: "<product>([^<]*)</product>"

oder aber

b) Den Quantifier non-greedy machen ... sprich dein Regexp sieht dann so aus: "<product>(.*?)</product>"

[edit] ... okok hab den U modifier nicht gesehen ^^ ... Variante a) sollte aber trotzdem einen leichten Geschwindigkeitsgewinn bringen da keine Lookups noetig sind und der NFA nicht springen muss. (falls einem das wirklich wichtig ist [/edit]

Hoffe das Hilft
 
Alt 13.01.2005, 10:48  
Gast
 
Beiträge: n/a
Standard

Moin Moin die Herren PHp Experten :wink:

@redeye
Das klingt logisch.

also muss iich die Zeile in meinen Script einbauen?

PHP-Code:
<?php 
$rdffile 
"hier steht die url der xml seite"
$content implode (""file ($rdffile)); 
$string str_replace "&amp;" "&" $string ) ;
preg_match_all("|<product>(.*)</product>|Uism",$content$itemsPREG_PATTERN_ORDER); 
for (
$i=0;$i<count($items[1]);$i++) 
preg_match_all
"|<name>(.*)</name>(.*)<description>(.*)</description>(.*)<imageUrl>(.*)</imageUrl>(.*)<productUrl>(.*)</productUrl>(.*)<price>(.*)</price>(.*)<currency>(.*)</currency>|Uism",$items[1][$i], $regsPREG_PATTERN_ORDER); 
echo 
"[img]".$regs[5][0]."[/img] 
<h1>"
.utf8_decode($regs[1][0])."</h1> 
"
.utf8_decode($regs[3][0])."
 
Preis: "
.utf8_decode($regs[9][0]).
"
.utf8_decode($regs[11][0]).

 
[url='"
.utf8_decode($regs[7][0])."']Klicken Sie hier für alle Details[/url]






\n"
; } 
?>
ich habe die Zeile jetzt in Zeile 4 eingefügt. Leider erfolglos.
Kannst Du mir eventuell die Zeile in den Code einbauen? Wie ich oben schon sagte, bin ich nicht so der PHP Expe

Wäre echt super dolle fein :wink:

mfg
Pretender
 
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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

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

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
bitte hilfe! mysql fehler meldung: basicx PHP Tipps 2008 2 22.07.2008 16:36
UTF8 Dump erzeugt nach import in UTF8 kod DB falsche Umlaute Carino Datenbanken 18 07.05.2007 23:49
Verständnisprobleme bei Utf8 > Character Set > Collate erna Datenbanken 4 20.03.2007 14:08
[Erledigt] Mysql Syntax Fehler Datenbanken 3 06.07.2006 09:58
Fehler beim auslesen aus der Datenabnk beim Suchen PHP Tipps 2005-2 6 16.10.2005 17:04
Daten eintragen und auslesen Rettungsdackel Datenbanken 0 14.09.2005 16:29
[Erledigt] Seite wird nicht angezeigt, untersch. Fehler bei IE/FF/Safar PHP-Fortgeschrittene 19 31.05.2005 14:52
[Erledigt] Username und Passwort auslesen!?!? Fehler im scrippt?!? Datenbanken 6 18.05.2005 18:46
Blöder MySQL Fehler PHP Tipps 2005 3 15.05.2005 03:14
Fehlermeldung - aber kein fehler... Tschuu HTML, Usability und Barrierefreiheit 16 14.03.2005 15:56
auslesen und nochmals auslesen?! $$$ ThiKool $$$ PHP Tipps 2005 23 10.03.2005 19:43
Fehler beim Auslesen eines Verzeichnis PHP Tipps 2007 7 04.01.2005 10:46
Wo liegt der fehler?? PHP-Fortgeschrittene 5 22.12.2004 09:54
[Erledigt] mysql fehler PHP Tipps 2004 2 03.11.2004 00:32
Seiten auslesen lassen = FEHLER PHP Tipps 2004 30 02.08.2004 16:53

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
utf8 xml, php utf8 xml auslesen, xml in utf8 auslesen php, \utf8.xml\, encoding utf-8 auslesen php simplexml attributes, stylesheet xsl, ampersand steht als variable in xml wie auslesen java, php seite mit xml content auslese, utf8 fehler bei xp, java utf8 xml lesen, utf8 auslesen php, xml sonderzeichen auslesen, utf-8 xml, utf8.xml, xml utf-8 in php auslesen

Alle Zeitangaben in WEZ +2. Es ist jetzt 07:56 Uhr.




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

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.