Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

XML File in PHP integrieren

Frage Entwicklung PHP

Mitglied: BadFsaadKl

BadFsaadKl (Level 1) - Jetzt verbinden

26.10.2010 um 10:55 Uhr, 5438 Aufrufe, 16 Kommentare

Hallo,

ich möchte ein XML File, welches in einem Verzeichniss auf dem WebServer liegt, in einem PHP-File einbinden, damit ich dieses auch von extern mir anzeigen lassen kann.

Das XML - File liegt in einem Verzeichniss "C:\Programme\..." auf dem Webserver.
Das XML-File kann ich aber nicht an einen anderen Ort kopieren, das dieses ständig durch ein programm akualisiert wird, und in dem Verzeichniss bleiben muß.

Wie kann ich dieses File in einem PHP oder HTML File mir anzeigen lassen, das ich auch vom WEB-Server aus mir den Inhalt anzeigen lassen kann ???

So hab ich es momentan probiert.


01.
<?php 
02.
$file = "C:\Programme\Log\topology.xml"; 
03.
$depth = array(); 
04.
 
05.
function startElement($parser, $name, $attrs)  
06.
07.
    global $depth; 
08.
    for ($i = 0; $i < $depth[$parser]; $i++) { 
09.
        echo "  "; 
10.
11.
    echo "$name\n"; 
12.
    $depth[$parser]++; 
13.
14.
 
15.
function endElement($parser, $name)  
16.
17.
    global $depth; 
18.
    $depth[$parser]--; 
19.
20.
 
21.
$xml_parser = xml_parser_create(); 
22.
xml_set_element_handler($xml_parser, "startElement", "endElement"); 
23.
if (!($fp = fopen($file, "r"))) { 
24.
    die("could not open XML input"); 
25.
26.
 
27.
while ($data = fread($fp, 4096)) { 
28.
    if (!xml_parse($xml_parser, $data, feof($fp))) { 
29.
        die(sprintf("XML error: %s at line %d", 
30.
                    xml_error_string(xml_get_error_code($xml_parser)), 
31.
                    xml_get_current_line_number($xml_parser))); 
32.
33.
34.
xml_parser_free($xml_parser); 
35.
?> 
bekomme aber nur als Fehlermeldung:

Warning: fopen(C.\Programme....) [function.fopen]:failed to open stream: Invalid argument on line 24
Could not open XML input

Hat hier einer ne Idee...

Odre mach ich hier komplett was falsch ???

Danke
Mitglied: dog
26.10.2010 um 11:03 Uhr
Zuerst mal empfiehlt sich meistens SimpleXML zu verwenden.

Zum anderen wir diese Zeile geparst
$file = "C:\Programme\Log\topology.xml";
zu
01.
$file = "C:\Programme\Log    opology.xml"; 
Und nein, ein Tab ist kein gültiges Zeichen in einem Dateinamen.

Weshalb man auch immer einfache Anfürhungszeichen benutzt, wenn man nicht ganz genau weiß was man will.
Bitte warten ..
Mitglied: awagner82
26.10.2010 um 11:04 Uhr
Edit: Wie bereits gesagt: Falsche Pfadangabe!

Gruß
Bitte warten ..
Mitglied: BadFsaadKl
26.10.2010 um 11:22 Uhr
Moin,

ich bekomme zwar jetzt keinen Fehler mehr, daür bekomme ich nicht das gewünscht ergebniss.

Das XML-File wird von einem anderen Programm erzeugt, und ist dynamisch. sprich mit "aufklapp-Menüs"...

wenn ich jetzt das php-file öffne, bekomme ich nur die XML-Variablen in Blockform angezeigt.
Jedoch nicht, was sich dahinter verbirgt.

Ich will letzendlich einfach nur das XML-File auch von extern öffnen können.
Da ich das File nicht wegkopieren kann (weil hier Referenzen auf andere Ort angegeben sind) hab ich einen Webserver auf dem Server installiert, und wollte dieses File einfach in PHP einbinden.
Bitte warten ..
Mitglied: bequiet
26.10.2010 um 15:48 Uhr
Also:

Wie kann ich dieses File in einem PHP oder HTML File mir anzeigen lassen:

Erste möglichkeit wäre, es einfach mit inem iframe in die Page einzubauen. Somit wird es dort ganz normal angezeigt z.B.
01.
<iframe src = "deinedatei.xml"/>
Dann, wenn du nur an die Daten der Datei möchtest und diese dann ausgeben willst, hätte ich hier eine JavaScript möglichkeit (das funktioniert natürlich auch mit php aber da weiss ich gerade nicht wie genau
)
01.
<script type="text/javascript"> 
02.
var xmlhttp = new ActiveXObject("Msxml2.XMLHTTP.3.0"); 
03.
xmlhttp.open("GET","xml_file.xml", false);  
04.
xmlhttp.send(null); 
05.
var variable = xmlhttp.responseXML.selectSingleNode("//gesuchterwert"); 
06.
var date = variable.text 
07.
... 
08.
</script>
schau dazu einmal hier evt http://www.phpbuilder.com/annotate/message.php3?id=1020252

Oder habe ich dich falsch verstanden? Hoff ich konnte dir etwas weiter helfen.

Mit freundlichen Grüßen
Bitte warten ..
Mitglied: Arano
26.10.2010 um 17:53 Uhr
Hallo.

Du willst die komplette XML-Datei, die zwar __auf__ dem Server aber __nicht__ im DocumentRoot liegt haben, oder ?
01.
<?php 
02.
  echo file_get_contents('C:\Programme\Log\topology.xml'); 
03.
?>
Vorausgesetzt es gibt keine Zugriffsbeschränkungen die den Zugriff auf Dateien außerhalb des DocumentRoots verhindern.

~Arano

Edit:
Ansonsten vielleicht einen Cronjob (Task) einrichten der die Datei ins DocumentRoot kopiert (je nachdem wie aktuell/veraltet die Datei sein darf).
Bitte warten ..
Mitglied: Midivirus
26.10.2010 um 22:28 Uhr
wenn der Webserver nur intern verwendet wird und es wahrscheinlich ein Apache ist,
sich mal über Alias informieren, dann geht das auch.

Und wenn ich den Thread richtig gerallt habe, soll die Datei einfach nur eingelesen und als Webseite ausgegeben werden?

Oder auch noch etwas damit angestellt werden?

Midi
Bitte warten ..
Mitglied: BadFsaadKl
28.10.2010 um 14:56 Uhr
Moin,

ja ist nen Apache Webserver.
Der Server, auf dem der Apache läuft, ist in unserem Firmennetzwerk integriert und auch im DNS eingetragen.

Was meinst du mit "Alias" ???

nun ja...
diese XML-Site ist wie gesagt bissle Dynamisch...
auch mit Java...

Wenn ich die XML im I-Explorer öffne, und hier ein Wort anklicke, rückt das ganze nach unten, und ich bekomme detailierte Informationen über den Inhalt dieses Wortes.

Sprich er muß ja Alles was das XML-File auslöst, auf dem Webserver anzeigen.
Bitte warten ..
Mitglied: Midivirus
28.10.2010 um 15:03 Uhr
Sprich er muß ja Alles was das XML-File auslöst, auf dem Webserver anzeigen.
Alias "/mama" "C:\katzenmaus\htdocs\beispiel"
wenn du das in deine conf packst, kannst du jeden Ordner auf der Platte, glaube sogar auch Netzlaufwerke, damit in den Apache mit integrieren.

aufrufbar dann mit: http://127.0.0.1/mama/

Wenn ich die XML im I-Explorer öffne, und hier ein Wort anklicke, rückt das ganze nach unten, und ich bekomme detailierte Informationen über den Inhalt dieses Wortes.
das ist bei XML so ... !

Sprich er muß ja Alles was das XML-File auslöst, auf dem Webserver anzeigen.
Und mit anzeigen, nur den Inhalt auslesen und auf dem Schirm anzeigen lassen ... ! Ohne mit der Datei etwas zu machen ...
Dann brauch man auch kein PHP mehr, in dem Sinne!

P.S.: reicht dir das dann nicht?
Bitte warten ..
Mitglied: BadFsaadKl
28.10.2010 um 15:40 Uhr
Doch doch...

das reicht mir auch schon...

wie funktioniert das dann mit diesem Alias ???
Bin hier in diesem Thema net so fit, wie du bestimmt schon mitbekommen haben solltest.

Ja, Soll nur angezeigt werden....
Bitte warten ..
Mitglied: Midivirus
28.10.2010 um 15:46 Uhr
Syntax:
01.
<Directory "C:/katzenmaus/wwwroot"
02.
    Options Indexes FollowSymLinks Includes ExecCGI 
03.
    AllowOverride All 
04.
    Order allow,deny 
05.
    Allow from all 
06.
</Directory> 
07.
 
08.
Alias "/mama" "C:\katzenmaus\htdocs\beispiel"
Wenn du in deiner Conf mal etwas stöberst, ... dann wirst du das erste Paket finden, ...
packst den Alias noch hinzu, wie oben beschrieben, gibt es den Unterordner "mama".

Fertig?
Bitte warten ..
Mitglied: BadFsaadKl
28.10.2010 um 16:14 Uhr
Soweit funktioniert es SUPER...
Danke....

Jetzt bekomme folgenden Fehler:



Die XML-Seite kann nicht angezeigt werden
Die XML-Eingabe kann nicht angezeigt werden, wenn Stylesheet XSL verwendet wird. Beheben Sie den Fehler und klicken Sie dann auf Aktualisieren, oder wiederholen Sie den Vorgang später.


Systemfehler: -2146697210.



Die Stylesheetsdatei lieg noch in einem anderen Ordner,...
Muß ich diesen auch noch mit angeben ???

Nur ich kann das Stylesheet XSL nicht deaktivieren, das das XML File wie gesagt automatisch erzeugt wird.
Bitte warten ..
Mitglied: Midivirus
28.10.2010 um 16:18 Uhr
nun, dachte hättest das gleich mit verstanden.

... du musst immer vom Webbrowser ausgehen!

wenn dein XSL ganz woanders liegt ... geht das natürlich nicht!

http://127.0.0.1/mama ... heißt doch nix anderes, dass im gleichen Ordner oder darunterliegende diese Datei enthalten soll ..., oder?

Ansonsten, kannst du dich auch nochmal über "Virtual Host" informieren!
01.
<VirtualHost *:8080> 
02.
    DocumentRoot "C:/katzenmama/zunge" 
03.
    ErrorLog "logs/error.reminder.log" 
04.
    CustomLog "logs/access.reminder.log" combined 
05.
</VirtualHost> 
06.
 
07.
Listen 80 
08.
Listen 8080
Aber hilfreich wäre es, wenn du mal so ein bissel von der Datei zeigst, damit das hier keine endlose Diskussion wird!
Bitte warten ..
Mitglied: BadFsaadKl
28.10.2010 um 16:42 Uhr
Hm...

ja, soweit hab ich auch schon mitgedacht...

Rufe den Link so im Browser auf:

http://server:90/topology/log/topology.xml

habe jetzt den übergeordneten Ordner eingetragen.
01.
	<Directory "C:/Programme/nworks/VIC/Collector/Log"> 
02.
		Options Indexes FollowSymLinks Includes ExecCGI 
03.
		AllowOverride All 
04.
		Order allow,deny 
05.
		Allow from all 
06.
	</Directory> 
07.
	Alias "/topology" "C:\Programme\nworks\VIC\Collector"
Das XML File liegt in dem Ordner: C:\Programme\nworks\VIC\Collector\Log
das Stylesheet liegt in dem Ordner: C:\Programme\nworks\VIC\Collector\xls

Das ist der Kopf des XML-Files:
01.
<?xml version="1.0" encoding="utf-8"?> 
02.
<?xml-stylesheet type='text/xsl' href='../xsl/topology.xsl'?> 
03.
<topology xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> 
04.
  <Associations /> 
05.
  <topologyNode id="VMware_Root" type="Folder" name="VMware Infrastructure">
Ab dem Bereich Associations kommen dann die ganzen Inhalte.
Bitte warten ..
Mitglied: Midivirus
28.10.2010 um 16:58 Uhr
Alias auf dieses Verzeichnis:
C:\Programme\nworks\VIC\Collector

01.
<Directory "C:/Programme/nworks/VIC/Collector/Log"> 
kannst du so lassen wie es war.

Also klappts?
Bitte warten ..
Mitglied: BadFsaadKl
28.10.2010 um 22:50 Uhr
Alias ist momentan auf "C:\Programme\nworks\VIC\Collector" gesetzt.
aber hier kommt obiger Fehler.

Und wenn ich es auf das LOG Verzeichniss mape, kommt der erste Fehler den ich angegeben hatte...

Klappt also net
Bitte warten ..
Mitglied: Midivirus
04.11.2010 um 21:47 Uhr
Für was brauchst du jetzt noch Hilfe?
Bitte warten ..
Neuester Wissensbeitrag
Microsoft

Lizenzwiederverkauf und seine Tücken

(5)

Erfahrungsbericht von DerWoWusste zum Thema Microsoft ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH Element aus XML-File auslesen (9)

Frage von pappkamerad zum Thema Batch & Shell ...

PHP
gelöst Externe XML-Datei in PHP auslesen (18)

Frage von Akrosh zum Thema PHP ...

PHP
gelöst PHP XML Statt Semikolon ein Zeilenumbruch (2)

Frage von Judo99 zum Thema PHP ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
FritzBox, zwei Server, verschiedene Netze (18)

Frage von DavidGl zum Thema LAN, WAN, Wireless ...

Windows Netzwerk
Windows 10 RDP geht nicht (16)

Frage von Fiasko zum Thema Windows Netzwerk ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...