Top-Themen

Aktuelle Themen (A bis Z)

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

PHP XMLReader

Mitglied: pascallantzsch

pascallantzsch (Level 1) - Jetzt verbinden

27.09.2014 um 00:49 Uhr, 1122 Aufrufe, 4 Kommentare, 1 Danke

Hallo,
habe jetzt seit Stunden das Internet durchsucht, mir Tutorials zu XMLREADER und XML-LINE angesehen und durchprobiert, aber das passende ist nicht dabei..

ich habe eine Index.xml und möchte dort einen wert auslesen, dieser wert ändert sich öfter mal, aber steht immer in der zweiten Zeile in folgendem Format:
<IndexFile index="ordner:testfile.zip" version="12" />
und ich möchte nur den String "testfile.zip", der sich wie gesagt immer ändert.
Diesen String nehme ich dann, welcher für eine Datei steht, die ich dann runterladen kann...
und muss dann in dieser Datei aus Zeile 8 nach dem selben Muster vorgehen, allerdings benötige ich dort einmal den string "ordner" und einmal den String "testfile2.zip (heißt ja dann anders)
Ich habe das Problem bereits mit batch auf dem pc gelöst, will dies aber nun per php Serverseitig ablaufen lassen.
Bin für jede Konstruktive Hilfe dankbar


Hier noch mein Batch Code:
for /f skip^=1^ tokens^=2^ delims^=^" %%i in ('type "Index.xml"') do (
if not defined filename1 for /f "tokens=2 delims=:" %%j in ("%%i") do (
set "filename1=%%j"
set "basename1=%%~nj"
setlocal EnableDelayedExpansion
>"neue1.txt" echo !filename1!

endlocal
)
)
for /f skip^=7^ tokens^=2^ delims^=^" %%i in ('type "%basename1%.xml"') do (
if not defined filename2 for /f "tokens=2 delims=:" %%j in ("%%i") do (
set "filename2=%%j"
set "basename2=%%~nj"
setlocal EnableDelayedExpansion
>"neue2.txt" echo !filename2!
endlocal
)
)
for /f skip^=7^ tokens^=2^ delims^=^" %%i in ('type "%basename1%.xml"') do (
if not defined filename3 for /f "tokens=1 delims=:" %%j in ("%%i") do (
set "filename3=%%j"
set "basename3=%%~nj"
setlocal EnableDelayedExpansion
>"neue3.txt" echo !filename3!
endlocal
)
)


LG
Mitglied: 114757
27.09.2014, aktualisiert um 10:04 Uhr
So aus der lameng ohne die Struktur der XML Files zu kennen ungetestet etwa so:

01.
<?php 
02.
$xml = simplexml_load_file('http://www.domain.de/data.xml'); 
03.
$result = $xml->xpath('//IndexFile[@index]'); 
04.
if (count($result) > 0){ 
05.
	$attrValue = $result[0]['index']; 
06.
        $arr = preg_split('/:/',$attrValue); 
07.
        $zipName = $arr[1]; 
08.
        // Download Zipfile 
09.
        file_put_contents("temp.zip", fopen("http://someurl/$zipName", 'r')); 
10.
 
11.
        $zip = new ZipArchive; 
12.
        if ($zip->open('temp.zip') === TRUE) { 
13.
            $zip->extractTo('/temp/'); 
14.
            $zip->close(); 
15.
            $basename = basename($zipName,'.zip'); 
16.
            $xml2 = simplexml_load_file('/temp/' + $basename + '.xml'); 
17.
            $result2 = $xml->xpath('//IndexFile[@index]'); 
18.
            if (count($result2) > 0){ 
19.
                 $attrValue = $result[0]['index']; 
20.
                 $arr = preg_split('/:/',$attrValue); 
21.
                 $ordner = $arr[0]; 
22.
                 $filename = $arr[1]; 
23.
                 echo 'Der Ordner lautet:' + $ordner + ' und der Dateiname ' + $filename
24.
25.
        } else
26.
            echo 'Konnte ZIPFile nicht extrahieren!'
27.
28.
 
29.
}else
30.
	echo("Keine Element gefunden"); 
31.
32.
 
33.
?>
Gruß jodel32
Bitte warten ..
Mitglied: pascallantzsch
27.09.2014 um 10:23 Uhr
ok, ich teste mal und geb dann ein echo ;-D
Bitte warten ..
Mitglied: pascallantzsch
27.09.2014 um 17:39 Uhr
Ok, wüsste gerne was ich hier angeben muss
$result = $xml->xpath(' ;IndexFile[@index]');
erhalte folgende Fehlermeldung als Ausgabe
Fatal error: Call to a member function xpath() on a non-object in /home/bla.php on line 18 (in line 18 steht der Code)

Noch zur Klärung
hier: $xml = simplexml_load_file('http:
www.domain.de/data.xml'); gebe ich den Ort ein, wo die xml liegt

was bedeutet das: file_put_contents("temp.zip", fopen("http://someurl/"$zipName", 'r'));

Danke schonmal
Bitte warten ..
Mitglied: 114757
27.09.2014, aktualisiert um 18:02 Uhr
Zitat von pascallantzsch:

Ok, wüsste gerne was ich hier angeben muss
$result = $xml->xpath()
das ist eine XPath Query. Diese selektiert das Element das du haben möchtest IndexFile ist der Name des Elements und [@index] bedeutet das das Element ein Attribut mit dem Namen index haben muss.
Siehe:

erhalte folgende Fehlermeldung als Ausgabe
Fatal error: Call to a member function xpath() on a non-object in /home/bla.php on line 18 (in line 18 steht der Code)
dann konnte er die XML-Datei nicht abrufen. URL prüfen.

Noch zur Klärung
hier: $xml = simplexml_load_file('http://www.domain.de/data.xml'"); gebe ich den Ort ein, wo die xml liegt
ja, dort wo sie aus dem Internet abgerufen wird.
was bedeutet das: file_put_contents("temp.zip", fopen("http://someurl/"$zipName", 'r'));
das läd das ZIP-File mit dem extrahierten Namen von einer URL runter.

Gruß jodel32
Bitte warten ..
Ähnliche Inhalte
PHP
PHP statements mit PHp erzeugen
gelöst Frage von LorderichPHP4 Kommentare

Hallo zusammen, ich habe eine Datei, in welcher per switch und case die Webseiten definiert werden, welche bei Aufruf ...

PHP

PHP - Variable in anderes PHP-Skript mitgeben

gelöst Frage von Jens4everPHP3 Kommentare

Hi zusammen, könnt ihr mir kurz helfen? Ich habe folgendes vor: Ich möchte, dass beim Aufruf von "check1.php" eine ...

PHP

PHP 5.3 nach PHP 5.6 portieren

Frage von nippon-tussiPHP5 Kommentare

Ich habe hier ein altes Projekt, das seit Jahren unter php 5.3 auf einem shared host bei all-inkl läuft. ...

PHP

PHP Versionsproblem

gelöst Frage von HenerePHP3 Kommentare

Hallo zusammen, ich habe ein Motorradforum übernommen bzw. vor der Abschaltung bewahrt. Nun möchte ich es auf einen neuen ...

Neue Wissensbeiträge
Server-Hardware
HP iLO ist gefährdet (iLO 4))
Tipp von AlFalcone vor 6 StundenServer-Hardware

Gemäss Twitter und Heise gibt es eine Angriffsmöglichkeit auf iLO Quelle: iLO ist gefährdet

CMS
Erneut kritische Zero-Day-Lücke in Drupal
Tipp von Reini82 vor 15 StundenCMS

Laut einem Bericht auf t3n gibt es eine Schwere Sicherheitslücke in Drupal die auch schon ausgenutzt wird. Betroffen sind ...

Sicherheit

MikroTik-Router patchen, Schwachstelle wird ausgenutzt

Information von kgborn vor 1 TagSicherheit

Am 23. April 2018 wurde von Mikrotik ein Security Advisory herausgegeben, welches auf eine Schwachstelle im RouterOS hinwies. Mikrotik ...

Windows 10

Microcode-Updates KB4090007, KB4091663, KB4091664, KB4091666 für Windows 10

Information von kgborn vor 1 TagWindows 101 Kommentar

Kurze Information für Administratoren von Windows 10-Systemen, die mit neueren Intel CPUs laufen. Microsoft hat zum 23. April 2018 ...

Heiß diskutierte Inhalte
Windows Server
Alten DC entfernen
gelöst Frage von smartinoWindows Server27 Kommentare

Hallo zusammen, ich habe hier eine Umgebung übernommen und erstmal einen DCDIAG gemacht. Dabei fällt auf, daß eine ganze ...

Ausbildung
Wie gelingt ein guter Einstieg in die FiSi-Ausbildung? (Umschulung)
Frage von SiAnKoAusbildung27 Kommentare

Schönen guten Tag, ich bin SiAnKo und habe seit dem 1.04.2018 eine Umschulung als FiSi angefangen. Ich möchte natürlich ...

Batch & Shell
Mit Powershell den Inhalt einer Excel mit einer Text Datei abgleichen
gelöst Frage von Bommi1961Batch & Shell21 Kommentare

Hallo zusammen, ich muss den Inhalt einer Excel Datei (Mappe1) mit dem Daten einer Text Datei abgleichen. Die Daten ...

Router & Routing
Subnetzmaske vergrößern
gelöst Frage von groovesurferRouter & Routing18 Kommentare

Hallo, hat jemand schonmal getestet was passiert, wenn man die Subnetzmaske bei laufendem Betrieb (wenn user im Netzwerk verbunden ...