Sie befinden sich hier im Forenarchiv von phpforum.de wenn Sie direkt ins Forum möchten, klicken Sie bitte hier. Zur Startseite kommen Sie hier.

Probleme mit iconv ???

Hallo,

habe ein Problem. Hatte ein Programm zusammengeschrieben welches xml-Dateien einliest und ein neues Element anhängt und als string zurückgibt welches danach die Ursprungsdatei überschreibt (mit minixml). Nun bekomme ich aber im String anstatt "><" "&amp;gt &amp;lt" zurück. Wie ich schon erfahren konnte handelt es sich dabei wahrscheinlich um UFT-8. Mir wurde vorgeschlagen es einmal mit iconv zu versuchen (also UFT-8 in ISO-8859-1). Leider scheint diese Funktion nicht bei mir in PHP4 enthalten zu sein (ist eigentlich die neuste xxamp-Version umgeschaltet auf PHP4). Wo kann ich diese Funktionalität her bekommen und wie kann ich sie in meine PHP Umgebung von xxamp einpflegen. Naja, ich bin kein PHP Experte ... wohl eher ein Anfänger und würde mich sehr freuen, wenn mir jemand eine Anleitung geben kann, wie ich diese und auch generell neue Funktion oder Klassen einpflegen kann (selbstverständlich auch einen Link zu einer Anleitung) und natürlich woher ich iconv bekomme.

Vielen Dank

Dingo

[color="red"]edit: &amp;gt; und &amp;lt; repariert. Olli[/color]

Hier gehts zum Orginal Eintrag "Probleme mit iconv ???" im Forum

Antworten

Du brauchst kein iconv. < muss in XML nun einmal als &amp;lt; dargestellt werden. Besser: Du packst deinen text der die Zeichen beinhaltet in CDATA Bereiche.


2.

Ich wollte die auch vorher in CDATA Bereiche stecken, nur leider gibt es anscheinend keine Methode dafür in der minixml. Es gibt nur eine Möglichkeit Text einzufügen oder irre ich mich da? Habe zumindest nichts in der API gefunden auf der Seite von den Machern von minixml?


3.

Hm, klappts denn, wenn Du einfach
<![CDATA[
Dein Text
<mit Sonderzeichen>
]]>
hinzufügst?


4.

Das habe ich gerade versucht also ich habe eingegeben:

"&lt;![CDATA[ ]]&gt;" und natürlich "<![CDATA[ ]]>"

"&lt![CDATA[ ]]&gt"

der letzte Versuch ergab diesen Eintrag:

<eintrag id="14" datum="" titel="" links="asfunction:ausgeben,14" abstract="" bild=""> &amp;lt![CDATA[]]&amp;gt </eintrag>

komischerweise macht er den Fehler nicht bei den Elementen die bereits im File waren (hatte bereits einige Dateien im File drin an die das neue Element angehangen werden sollte (diese hatte ich mit der Hand eingegeben!). Diese muss er ja auch einlesen und gibt sie wieder als string zurück!?!?! Nur die Eingaben die ich durch das Textfeld reinjage sind anders.


5.

Hm, okay, ich muss zugeben, ich habe miniXML noch nicht zum Erzeugen von XML Dateien benutzt. Aber lass und erstmal ausschließen, dass das kein miniXML Problem ist: Sind die <> vielleicht vorher schon umgewandelt, bevor miniXML die bekommt? Kannst Du die mal ausgeben und das prüfen?


6.

Meinst du jetzt die schon im File sind oder die ich über die Methode text() eingebe? Habe hier mal den Quelltext meines Skripts.

Code:                   In Zwischenablage kopieren (nur IE)
1">

Also so wie ich das ganze verstehe, ist die Methode text() die ich innerhalb der Methode createChild() anwende direkt mit dieser gekoppelt und wird durch toString() von einem Objekt in ein String umgewandelt diesen habe ich auch schon einfach ausgegeben aber genau mit dem selben Ergebnis :

<eintrag id="14" datum="" titel="" links="asfunction:ausgeben,14" abstract="" bild=""> &lt![CDATA[]]&gt </eintrag>


7.

Ich habe eine Antwort gefunden im Netz. Komisch auf der direkten Seite zu minixml steht nix drauf aber es gibt doch eine Funktion CDATA und mit der funzt das ganze jetzt ;-) . Also für jeden der minixml benutzen möchte und sich an die API Beschreibung von psychogenic hält : es gibt eine CDATA Methode!


Hier gehts zum Orginal Eintrag "Probleme mit iconv ???" im Forum
 
phpforum.de | Impressum