regulärer Ausdruck: kleine Hifle bitte.

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

  • #16
    OffTopic:
    ich hab ja beides gesagt

    Kommentar


    • #17
      ich will da gleich noch was anhängen...
      habe eine opensource-archivfunktion im Einsatz und gebe bei den Suchresultaten folgendermassen den Dateinamen aus:

      PHP-Code:
        <?php 
      $path 
      $all_search_results ["page_url"][$i];
      $datei $path;
      $basename basename ($datei);
      echo 
      $basename;
      ?>
      Dabei wird z.B. folgender Dateiname angezeigt: 5105barnetta.html

      Jetzt würde ich gerne diesen Dateinamen etwas.. auseinander nehmen. Die Zahl am Anfang des Dateinamen steht nämlich für Ausgabe (51) und Jahr (05). Hättet ihr evtl. einen Tipp für mich wie ich diese beiden Zahlen "rausfiltern" kann? Also damit ich dann wirklich folgende Zeile unter jedem Suchergebniss zeigen kann:

      Ausgabe 51, Jahr 05

      Vielen Dank


      hab selber was gefunden.. mit "substr" funktioniert es!!!
      Zuletzt geändert von Fanello; 16.05.2006, 12:35.

      Kommentar


      • #18
        PHP-Code:
        $uri '5105barnetta.html';
        $ausgabe substr($uri02);
        $jahr substr($uri,2,2);
        echo 
        'Ausgabe ' $ausgabe ', Jahr ' $jahr
        wenn es halt mehr als 99 ausgaben gibt, wirds du prüfen müssen, ob das fünfte zeichen ne zahl ist und für ausgabe ggf. ne len von 3 statt 2 nehmen müssen

        EDIT:
        nächstes mal mit dem edit-tag damit ichs auch erkenn :P
        MfG
        aim
        Lies mich jetzt!
        - OT-Tags-Liebhaber und BB-Code-Einrücker -

        Kommentar


        • #19
          mit nem regulären ausdruck kriegt man auch alles auf einmal hin:

          PHP-Code:
          $string 'pfad/zur/datei/5105barnetta.html';
          if (
          preg_match('@.*/((\d+)(\d{2})[^\.]+)\.([^/]+)@'$string$info)) {
              
          /*
              * $info[x]
              * x = 
              * 1: dateiname (5105barnetta)
              * 2: ausgabe (51)
              * 3: jahr (05)
              * 4: dateiendung (html)
              */
              
          print_r($info);

          ach blödes forum: [^.] muss heißen [^{backslash}.]

          '@.*/(({backslash1}d+)({backslash1}d{2})[^{backslash1}.]+){backslash2}.([^/]+)@'

          {backslash2} kann man aber auch weglassen

          achja: bei dem code ist es egal wie lang die 1. zahl ist. ausgabennummer kann also ein- bis sehr-viel-stellig sein.
          Zuletzt geändert von MarkusW; 16.05.2006, 18:22.

          Kommentar


          • #20
            Original geschrieben von aimbot
            PHP-Code:
            $uri '5105barnetta.html';
            $ausgabe substr($uri02);
            $jahr substr($uri,2,2);
            echo 
            'Ausgabe ' $ausgabe ', Jahr ' $jahr
            wenn es halt mehr als 99 ausgaben gibt, wirds du prüfen müssen, ob das fünfte zeichen ne zahl ist und für ausgabe ggf. ne len von 3 statt 2 nehmen müssen

            EDIT:
            nächstes mal mit dem edit-tag damit ichs auch erkenn :P
            genau so hab ichs gemacht! danke!!

            Kommentar


            • #21
              sorry fürs einmischen.

              mit filefunktionen: basename(".html") kann dann aber ".htm" nicht abspalten.
              mit reg exp: preg_split('#[slash backslash]#) gefolgt von count() gefolgt von preg_split('#[punkt]#)

              Kommentar


              • #22
                ich habe mit htaccess (RewriteRule) die dateinamen geändert. hat jemand idee wie man manipulierte dateiname auslesen kann?

                also: es war mal index.php?name=neue und server liest neue.html

                Kommentar


                • #23
                  Original geschrieben von rolan
                  ich habe mit htaccess (RewriteRule) die dateinamen geändert. hat jemand idee wie man manipulierte dateiname auslesen kann?

                  also: es war mal index.php?name=neue und server liest neue.html
                  PHP-Code:
                  echo '<pre>' print_r($_SERVER1) . '</pre>'
                  Irgendwo da sollte es drin stehen~

                  Ein netter Guide zum übersichtlichen Schreiben von PHP/MySQL-Code!

                  bei Klammersetzung bevorzuge ich jedoch die JavaCoding-Standards
                  Wie man Fragen richtig stellt

                  Kommentar

                  Lädt...
                  X