preg_replace?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • preg_replace?

    Hi

    ich hab eine datei mit folgendem inhalt:
    PHP-Code:
     <svr-0 friendly="0 Server IP or name">0</svr-0>
      <
    svr-1 friendly="1 Server IP or name">0</svr-1>
      <
    svr-2 friendly="2 Server IP or name">0</svr-2>
      <
    svr-3 friendly="3 Server IP or name">0</svr-3>

      <
    svr-4 friendly="4 Server IP or name">0</svr-4>
      <
    svr-5 friendly="5 Server IP or name">0</svr-5>
      <
    svr-6 friendly="6 Server IP or name">0</svr-6>
      <
    svr-7 friendly="7 Server IP or name">0</svr-7>
      <
    svr-8 friendly="8 Server IP or name">0</svr-8>
      <
    svr-9 friendly="9 Server IP or name">0</svr-9>

      <
    kick friendly="# times kicked">3</kick>
      <
    ban friendly="# times banned">0</ban>
    .... 
    Was muss ich machen damit ich die zahlen die zwischen den tags stehen dann z.b. so abrufen kann:

    $blub[svr-2]
    $blub[kick]
    $blub[ban]

    usw....

    Geht das mit ereg_replace? weil ich kann mir das irgendwie grad nicht richtig vorstellen...

  • #2
    wie man sieht, hast du dir auch keinerlei mühe gegeben, irgendwie mal selbst etwas zu probieren ...

    http://pcre.nophia.de/evaluate/e9a42...dex.php#output

    sieh dir den ersten/zweiten unterausdruck an ... wie du die werte in ein array bekommst, weißt du ja.
    Die Zeit hat ihre Kinder längst gefressen

    Kommentar


    • #3
      PHP-Code:
      <?php

      $find 
      = array(
                         
      "#<(\S+)\s.*>(\d+)</\1>#is"
                      
      );

      $replace = array(
                         
      "\\1 hat den Wert:"
                      
      );

      $test preg_replace($find,$replace,$stats); 

      return 
      $test;
      ?>
      So?
      Zuletzt geändert von PHPbeginner; 29.06.2005, 10:23.

      Kommentar


      • #4
        Ich musste das Suchmuster ein bisschen abändern und jetzt sieht es so aus -> klick

        Im PHP Script funktioniert es aber nicht und bei diesem Tester wird nur die erste Zeile ersetzt.

        EDIT:
        Ich hab jtzt endlich was gefunden das funktioniert:

        PHP-Code:
        $stats "<mode2 friendly='Game mode 2'>0</mode2><mode1 friendly='Game mode 1'>0</mode1>";

        $test preg_replace("/\<(.*?)\s.*\>(.*?)\<\/(.*?)\>/si","\\1 hat den Wert: \\2",$stats); 

        echo 
        $test
        Einziges Problem: Bei der Ausgabe kommt nur:

        mode2 hat den Wert: 0
        Zuletzt geändert von PHPbeginner; 29.06.2005, 11:42.

        Kommentar

        Lädt...
        X