php-resource



Zurück   PHP-Scripte PHP-Tutorials PHP-Jobs und vieles mehr > Entwicklung > XML
 

Login

 
eingeloggt bleiben
star Jetzt registrieren   star Passwort vergessen
 

 

 


XML Hier passt alles rein, was das Thema XML (XSLT, JSON etc...) betrifft, auch in Verbindung mit PHP

Antwort
 
LinkBack Themen-Optionen Thema bewerten
  #1 (permalink)  
Alt 09-10-2008, 10:48
Morpheus2100
 Registrierter Benutzer
Links : Onlinestatus : Morpheus2100 ist offline
Registriert seit: Apr 2004
Beiträge: 385
Morpheus2100 ist zur Zeit noch ein unbeschriebenes Blatt
Standard XML nach bestimmten String Parsen und in Array schreiben

Hallo Leute,

ich versuche eine XML Datei zu durchsuchen, auf einen bestimmten String.
Anhand dieses regulären Ausdrucks:
PHP-Code:
$tag '/time=".*"/'
Jetzt wollte ich eigentlich erreichen, dass er mit immer den String "time="0"" in den array schreibt und das hald für jeden passenden wert. Sprich er sollte letztlich dann so aussehen:
PHP-Code:
Array
(
    [
0] => time="0"
    
[1] => time="2"
    
[2] => time="3"

Aber irgenwie gibt er es mir so aus????
PHP-Code:
Array
(
    [
0] => time="0">{sdfgsdfg}{sdfgsdfgtime="2">{asdf}{asdftime="3">{asdf}{sdf}
Es wurden 3 Vorkommen von /time=".*"gefunden 
Weis allerdings nicht wieso?

Könnt ihr mir da weiterhelfen? Irgendwie seh ich nicht was da falsch sein soll?

Danke für eure Hilfe.

hier das skript:
PHP-Code:
$tag '/time=".*"/';
$inhalt file_get_contents('test.xml');
preg_match_all($tag,$inhalt,$treffer);

echo 
"<pre>";
print_r($treffer[0]);
echo 
"</pre>";

echo 
'<p>Es wurden '.count($treffer[0]).' Vorkommen von '.$tag.' gefunden'
die XML DATEI:
PHP-Code:
<?xml version="1.0" encoding="utf-8" ?>

<DataItems>
    <DataItem TYPEID="{sdfgsdfgsdfgsdfg}" now="10/6/2008 09:33:57" time="0">
        <Event>
            <InstanceID>{sdfgsdfg}</InstanceID>
            <ProviderID>{sdfgsdfg}</ProviderID>
            <Time TimeString="9/21/2008 22:53:01">39712.870162037</Time>
            <SourceName>Security</SourceName>
            <AgentComputer>sdfgs</AgentComputer>
            <Computer>sdfg</Computer>
            <Domain>sdfg</Domain>
            <CategoryNumber>2</CategoryNumber>
            <EventNumber>552</EventNumber>
            <EventType>8</EventType>
            <UserName>sdfgsdfg</UserName>
            <UserDomain>NT AUTHORITY</UserDomain>
            <Message><![CDATA[Logon attempt using explicit credentials:
 Logged on user:
     User Name:    sdfgsdfg
     Domain:        sdfgs
     Logon ID:        (0x0,0x3E7)
     Logon GUID:    {sdfgsdfg}
 User whose credentials were used:
     Target User Name:    sdfg
     Target Domain:    sdfgsdfg
     Target Logon GUID: -

 Target Server Name:    sdfgsdfg
 Target Server Info:    sdfgssdfg
 Caller Process ID:    4345345
 Source Network Address:    -
 Source Port:    -
 ]]></Message>
            <Category><![CDATA[Logon/Logoff ]]></Category>
            <MessageDLL>MsAuditE.dll</MessageDLL>
        </Event>
    </DataItem>
    <DataItem TYPEID="{asdfasd}" now="10/6/2008 09:33:57" time="2">
        <Event>
            <InstanceID>{asdf}</InstanceID>
            <ProviderID>{asdf}</ProviderID>
            <Time TimeString="9/21/2008 22:58:02">39712.8736342593</Time>
            <SourceName>Security</SourceName>
            <AgentComputer>asdf</AgentComputer>
            <Computer>asdf</Computer>
            <Domain>asdfasdf</Domain>
            <CategoryNumber>2</CategoryNumber>
            <EventNumber>552</EventNumber>
            <EventType>8</EventType>
            <UserName>asdf</UserName>
            <UserDomain>NT AUTHORITY</UserDomain>
            <Message><![CDATA[Logon attempt using explicit credentials:
 Logged on user:
     User Name:    asdf
     Domain:        asdf
     Logon ID:        (0x0,sdf)
     Logon GUID:    {asdf}
 User whose credentials were used:
     Target User Name:    asdf
     Target Domain:    asdf
     Target Logon GUID: -

 Target Server Name:    asdf
 Target Server Info:    sdf
 Caller Process ID:    836
 Source Network Address:    -
 Source Port:    -
 ]]></Message>
            <Category><![CDATA[Logon/Logoff ]]></Category>
            <MessageDLL>MsAuditE.dll</MessageDLL>
        </Event>
    </DataItem>
    <DataItem TYPEID="{38D93882-6459-11D2-A6E1-00A0C97148B7}" now="10/6/2008 09:33:58" time="3">
        <Event>
            <InstanceID>{asdf}</InstanceID>
            <ProviderID>{sdf}</ProviderID>
            <Time TimeString="9/26/2008 00:10:47">39716.9241666667</Time>
            <SourceName>asdf</SourceName>
            <AgentComputer>asdf</AgentComputer>
            <Computer>asdf</Computer>
            <Domain>asdf</Domain>
            <CategoryNumber>2</CategoryNumber>
            <EventNumber>22062</EventNumber>
            <EventType>4</EventType>
            <UserName>NETWORK SERVICE</UserName>
            <UserDomain>NT AUTHORITY</UserDomain>
            <Message><![CDATA[The Agent outgoing data processing has successfully resumed after being blocked. 
Management Group: asdf ]]></Message>
            <Category><![CDATA[MOM asdf ]]></Category>
            <MessageDLL>MOMMsgs.dll</MessageDLL>
        </Event>
    </DataItem>
</DataItems>
Mit Zitat antworten
  #2 (permalink)  
Alt 09-10-2008, 11:09
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Schau dir mal print_r($treffer) an.
Mit Zitat antworten
  #3 (permalink)  
Alt 09-10-2008, 11:35
Morpheus2100
 Registrierter Benutzer
Links : Onlinestatus : Morpheus2100 ist offline
Registriert seit: Apr 2004
Beiträge: 385
Morpheus2100 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Zitat:
Original geschrieben von onemorenerd
Schau dir mal print_r($treffer) an.

Hmm wird so angezeigt:
[PHP]
Array
(
[0] => Array
(
[0] => time="0">{sdfgsdfg}{sdfgsdfg} time="2">{asdf}{asdf} time="3">{asdf}{sdf}
[PHP]

Überseh ich da grad was?
Mit Zitat antworten
  #4 (permalink)  
Alt 09-10-2008, 11:44
Benutzerbild von onemorenerd onemorenerd
  Moderator
Links : Onlinestatus : onemorenerd ist offline
Registriert seit: Mar 2005
Ort: Berlin
Beiträge: 9.471
onemorenerd wird schon bald berühmt werdenonemorenerd wird schon bald berühmt werden
Standard

Schau dir mal den Quelltext der Ausgabe von print_r($treffer) an.
Bei mir funktioniert dein oben geposteter Code wie erwartet. Bei dir ist offenbar noch der Modifier U (ungreedy) notwendig.
Mit Zitat antworten
  #5 (permalink)  
Alt 09-10-2008, 12:09
Morpheus2100
 Registrierter Benutzer
Links : Onlinestatus : Morpheus2100 ist offline
Registriert seit: Apr 2004
Beiträge: 385
Morpheus2100 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

AHHH GEil das war schon! Krass.

Hab das im PHP Resource Tutorial nicht gefunden! ;-)
Link zu Tutorial

Vielen Dank für deine Hilfe!

Schöne Grüße
Michael

P.S. ich hab jetzt mal gesucht was "ungreedy" wirklich macht, werde aber da nicht wirklich schlau?
Kann mir das jemand kurz erklären?

PHP-Code:
Dieser Modifikator kehrt die Gier von Quantifikatoren umsodass sie 
standardmäßig nicht gierig sind
aber gierig werdenwenn ihnen ein "?" 
folgtDas ist nicht mit Perl kompatibelEs kann auch innerhalb des 
Suchmusters mit dem Modifikator 
(?Uoder durch ein Fragezeichen hinter 
dem Quantifikator 
(z.B. .*?) gesetzt werden

Geändert von Morpheus2100 (09-10-2008 um 12:15 Uhr)
Mit Zitat antworten
  #6 (permalink)  
Alt 09-10-2008, 13:02
TobiaZ
  Moderator
Links : Onlinestatus : TobiaZ ist offline
Registriert seit: Jan 2001
Ort: MUC und MGL, Germany
Beiträge: 34.421
Blog-Einträge: 1
TobiaZ befindet sich auf einem aufstrebenden Ast
Standard

Beispiel:

<b>Das</b> ist ein <b>Test</b>

Wenn mann nun die B-Tags parsen würde, erhältst du folgendes Ergebnis:

Ohne Ungready:
Das</b> ist ein <b>Test

Mit Ungreadsy:
Das - und - Test
__________________
ERST LESEN: Unsere Regeln. | Ich hab schon Pferde kotzen sehn!

READ THIS: Strings richtig trennen/verbinden | JOINs, das leidige Thema | Wegwerf E-Mail Adressen

Ich werde keinen privaten 1:1 Support leisten, außer ich biete ihn ausdrücklich an.

Wenn man sich selbst als "Noob" bezeichnet, sollte man die Finger davon lassen.
Wenn man gewillt ist daran etwas zu ändern, lernt man Grundlagen!
Mit Zitat antworten
  #7 (permalink)  
Alt 09-10-2008, 13:39
Morpheus2100
 Registrierter Benutzer
Links : Onlinestatus : Morpheus2100 ist offline
Registriert seit: Apr 2004
Beiträge: 385
Morpheus2100 ist zur Zeit noch ein unbeschriebenes Blatt
Standard

Ahha naja das ist ja schonmal was!

Was mir jetzt aber aufgefallen ist es sollte letzlich ein 2 gig Text Log file geparst werden, was mit php wohl nicht so der performance hit wird.
Hat jemand schonmal sowas gemacht mit PHP?

Hab mir das gleiche in perl nochmal geschrieben!

Vielen Dank für eure Hilfe!
Mit Zitat antworten
  #8 (permalink)  
Alt 09-10-2008, 13:40
unset
  Moderator
Links : Onlinestatus : unset ist offline
Registriert seit: Jan 2007
Ort: Düsseldorf
Beiträge: 3.782
unset befindet sich auf einem aufstrebenden Ast
Standard

Es heißt übrigens (un)greedy. Nur falls du mit der Schreibweise beim googlen Probleme hast ...
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 

Themen-Optionen
Thema bewerten
Thema bewerten:

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 an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an


PHP News

ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlicht
ebiz-trader 7.5.0 mit PHP7 Unterstützung veröffentlichtDie bekannte Marktplatzsoftware ebiz-trader ist in der Version 7.5.0 veröffentlicht worden.

28.05.2018 | Berni

Wissensbestand in Unternehmen
Wissensbestand in UnternehmenLebenslanges Lernen und Weiterbilden sichert Wissensbestand in Unternehmen

25.05.2018 | Berni


 

Aktuelle PHP Scripte

ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script ansehen ebiz-trader 6.0 - Das professionelle PHP Marktplatz Script

Mit unserer Lösungen können Sie nahezu jeden B2B / B2C Marktplatz betreiben den Sie sich vorstellen können. Ganz egal ob Sie einen Automarktplatz, Immobilenportal oder einfach einen Anzeigenmarkt betreiben möchten. Mit ebiz-trader können Sie Ihre Anforder

11.10.2018 Berni | Kategorie: PHP/ Anzeigenmarkt
PHP Server Monitor

PHP Server Monitor ist ein Skript, das prüft, ob Ihre Websites und Server betriebsbereit sind.

11.09.2018 Berni | Kategorie: PHP/ Security
PHP WEB STATISTIK ansehen PHP WEB STATISTIK

Die PHP Web Statistik bietet Ihnen ein einfach zu konfigurierendes Script zur Aufzeichnung und grafischen und textuellen Auswertung der Besuchern Ihrer Webseite. Folgende zeitlichen Module sind verfügbar: Jahr, Monat, Tag, Wochentag, Stunde Folgende son

28.08.2018 phpwebstat | Kategorie: PHP/ Counter
 Alle PHP Scripte anzeigen

Alle Zeitangaben in WEZ +2. Es ist jetzt 03:10 Uhr.