SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Webseiten professionell erstellen

Webseiten professionell erstellen zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > PHP für Fortgeschrittene und Experten

PHP für Fortgeschrittene und Experten Fortgeschrittene und Experten können hier über ihre Probleme und Bedenken talken

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 05.02.2009, 23:02:24
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
Sonderzeichen aus XML-Datei

test.xml
Zitat:
<?xml version='1.0'?>
<document>
<title>Zweiundvierz...?</title>
<from>Joe</from>
<to>Jane</to>
<body>
Ich kenne die Antwort -- aber was ist die Frage?
</body>
</document>
Test PHP-Code
PHP-Code:
<?php
if(isset($_POST['xml'])) {
$string $_POST['xml'];
$xml simplexml_load_string($string);

//var_dump($xml);
echo $xml->body;
}

?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" target="">
<textarea name="xml" cols="30" rows="9"></textarea><br>
<input type="Submit" name="senden" value="Senden">
</form>
Theoretisch kann ich die XML-Datei einfach in ein Verzeichnis kopieren und dann einbinden. Alles kein Problem.
Ich selbst habe aber keinen direkten Zugriff auf diese XML. Mir wird sie in einem I-Frame angezeigt.
Theoretisch könnte ich die Datei local Abspeichern, auf den Server laden und dort dann per Script auslesen lassen. Dieser Aufwand ist mir allerdings zu viel. Zusätzlich müsste ich auch noch dafür sorgen, daß die XML-Dateien gelöscht werden.
Bislang kopiere ich die angezeigte Datei und durch einen großen Umweg komme ich schliesslich auch zu den gewünschten Daten um sie in eine DB zu speichern.

Benutze ich o.g. PHP-Script, kommt es zu diversen, logischen Fehlern
Zitat:
Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : XML declaration allowed only at the start of the document in C:\xampp\htdocs\testsiten\test.php on line 4

Warning: simplexml_load_string() [function.simplexml-load-string]: <?xml version=\"1.0\" ?> in C:\xampp\htdocs\testsiten\test.php on line 4

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\xampp\htdocs\testsiten\test.php on line 4

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 2: parser error : Start tag expected, '<' not found in C:\xampp\htdocs\testsiten\test.php on line 4

Warning: simplexml_load_string() [function.simplexml-load-string]: - <document> in C:\xampp\htdocs\testsiten\test.php on line 4

Warning: simplexml_load_string() [function.simplexml-load-string]: ^ in C:\xampp\htdocs\testsiten\test.php on line 4
mit ltrim() könnte ich die ersten beiden Fehlermeldung umgehen.
Hat einer eine Idee, wie ich die Sonderzeichen zwischen den XML-Tags auf einfachen Weg wegbekomme?

Auf die Schnelle fällt mir nur ein nach ^ und - zu suchen und diese durch nichts zu ersetzen. Bin mir nur nicht sicher ob es dann so tatsächlich funktioniert.
Mit Zitat antworten
  #2  
Alt 05.02.2009, 23:12:47
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Sonderzeichen aus XML-Datei

Habs selbst gefunden
PHP-Code:
$zeichen = array('^','-');
$ersetzen = array('','');
$string trim($_POST['xml']);
$string stripcslashes($string);
$string str_replace($zeichen,$ersetzen,$string); 
Danach ist die XML wieder konform.
Mit Zitat antworten
  #3  
Alt 09.02.2009, 23:20:30
stfwi stfwi ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 44
Beiträge: 17
AW: Sonderzeichen aus XML-Datei

Hi,

ich habe Dein script mal getestet. Die $_POSTs
werden mit Escape-Sequenzen versehen, die
kannst Du mit stripslashes() wegbekommen.
Danach brachte der XML-Parser keine Fehler
mehr. Hier nochmal das geänderte Script:

PHP-Code:
<?
if(isset($_POST['xml'])) {
    $string = stripslashes($_POST['xml']);
    echo "<pre>";
    echo htmlspecialchars($string);
    $xml = simplexml_load_string($string);
    echo "\n\n";
    echo $xml->body;
    echo "</pre>";
}
?>
__________________
inline const char const * const * operator () () const throw() { return *this; }
Mit Zitat antworten
  #4  
Alt 10.02.2009, 14:49:50
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Sonderzeichen aus XML-Datei

Jup, hatte ich schon bemerkt. S.o.
Danke trotzdem, daß du dir noch einmal die Mühe gemacht hast.

Vielleicht noch einmal der Vollständigkeitshalber, falls jemand anderes soetwas ähnliches benötigt:
PHP-Code:
<?php
if(isset($_POST['xml'])) {
$zeichen = array('^','-');
$ersetzen = array('','');
$string trim($_POST['xml']);
$string stripcslashes($string);
$string str_replace($zeichen,$ersetzen,$string);
$xml simplexml_load_string($string);

//var_dump($xml);
echo $xml->body;
}
?>
<form action="<?php echo $_SERVER['SCRIPT_NAME']; ?>" method="post" target="">
<textarea name="xml" cols="30" rows="9"></textarea><br>
<input type="Submit" name="senden" value="Senden">
</form>
Wer sich jetzt die im Eingangspost erstellt .xml im Browser anzeigen läßt, den Inhalt kopiert und ins Formular einfügt, bekommt die korrekte Anzeige ohne Fehler.

Achtung: Firefox und Netscape unterschlagen die XML Declaration. Dies ist allerdings kein Problem. Die Anzeige wird trotzdem korrekt ausgegeben. Der Opera unterschlägt die XML-Tags, weshalb es mit dem Opera nicht funktioniert.

Für mich steht allerdings nur der IE oder Firefox zur Verfügung (interne Lösung), weshalb für mich diese Lösung ausreicht.

PS: Persönlich wäre mir ein Zugriff auf die original .xml lieber aber es soll halt nicht sein.
Mit Zitat antworten
  #5  
Alt 10.02.2009, 22:46:10
stfwi stfwi ist offline
Anfänger
 
Registriert seit: Feb 2009
Alter: 44
Beiträge: 17
AW: Sonderzeichen aus XML-Datei

(da hätte ich vor dem posten besser nochmals reingeschaut ;-) )
__________________
inline const char const * const * operator () () const throw() { return *this; }
Mit Zitat antworten
  #6  
Alt 10.02.2009, 23:33:27
Benutzerbild von urvater
urvater urvater ist offline
Senior Member
 
Registriert seit: Feb 2006
Ort: Wallrabenstein
Alter: 55
Beiträge: 1.044
AW: Sonderzeichen aus XML-Datei

Zitat:
Zitat von stfwi Beitrag anzeigen
(da hätte ich vor dem posten besser nochmals reingeschaut ;-) )
Sehe ich nicht ganz so. Du hättest ja eine Antwort bringen können, die um vieles einfacher ist als meine. :)
Mit Zitat antworten
Antwort


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 aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Fehler in Script das Inhalt einer .txt Datei (HTML Sourcecode) in Datei schreiben sol RookieXL2 PHP für Fortgeschrittene und Experten 2 09.06.2007 00:58:33
PHP soll selber eine .txt oder .dat file kreiren Limbi PHP Grundlagen 5 14.06.2006 19:45:20
Datei öffnen- Sonderzeichen verhunzt. sinfo PHP für Fortgeschrittene und Experten 5 30.05.2006 23:39:19
Inhalt einer Datei ab einem Fixpunkt einlesen rkersting PHP für Fortgeschrittene und Experten 11 21.03.2005 13:52:47
Sonderzeichen in Datei schreiben olid PHP Grundlagen 3 05.06.2003 02:18:05


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


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt