Raffi: Durchsuchen und ausgeben aus Textdatei...komm nicht weiter...

Hallo Leute

Habe vergebens versucht:

Den Titel aus einer Datei auszulesen.

/Title (Crystal Reports - Offene Leistung )>>
^^^^^^                                     ^^
Also das zwischen /Title und >> ist der eigentliche Titel.

Das wurde mir als Link empfohlen:
http://de.php.net/manual/en/function.preg-match-all.php

Das als Suchmuster:
$muster = "|/Title (([^)>]+))>>|";

Jetzt habe ich folgendes zusammengebaut:
   $the_file_to_search = "test.pdf";
   $search_pattern = "/Title";
 $muster = "|/Title (([^)>]+))>>|";

$fcontents = file ($the_file_to_search);
   while (list ($line_num, $line) = each ($fcontents)) {
      if (ereg($search_pattern,$line))
         echo preg_match_all($muster, $line);
   }

Irgendwie will das ganze nicht. Wie kann ich einen möglichst kurzen Code erstellen, der mir einfach den Titel wie oben beschrieben aus dem File ausgibt?

Danke und Grüsse aus der Schweiz

Raffi

  1. Moin Raffi

    echo preg_match_all($muster, $line);

    Irgendwie will das ganze nicht.

    Der Weg ist schon richtig, allerdings arbeitet preg_match_all
    _nicht_ so wie Du das (nach Deiner Verwendungsweise der Funktion) erwartest.
    Lies die Beschreibung in der Dokumentation nochmal _ganz_ durch.

    Viele Grüße

    lulu

    --
    bythewaythewebsuxgoofflineandenjoytheday
    1. Habe ich schon etwa 3 mal gelesen.....irgendwie blick ich einfach nicht durch....habe irgendwie einen Knopf.

      Kann mir jemand helfen?

      Gruss und danke

      Raffi

      1. Huhu Raffi

        Habe ich schon etwa 3 mal gelesen.....irgendwie blick ich einfach nicht durch....habe irgendwie einen Knopf.

        wo liest Du denn, ich hoffe doch hier

        http://de2.php.net/manual/en/function.preg-match-all.php

        da steht gleich am Beginn folgendes:

        <quote>
        Description
        int preg_match_all ( string pattern, string subject, array matches [, int flags])

        Searches subject for all matches to the regular expression given in pattern and puts them in matches in the order specified by flags.
        </quote>

        Schau Dir die Beispiele an.

        Auf dem Zaunpfahl steht "dritter Parameter -> matches".

        Viele Grüße

        lulu

        --
        bythewaythewebsuxgoofflineandenjoytheday
        1. Soweit so gut....

          Habe nun etwas hinbekommen:

          $the_file_to_search = "test.pdf";
             $search_pattern = "/Title";
           $muster = "|/Title (([^)>]+))>>|";

          $fcontents = file ($the_file_to_search);
             while (list ($line_num, $line) = each ($fcontents)) {
                if (ereg($search_pattern,$line))

          if (preg_match_all("#\Title(.*?)>>#", $line, $match))
           for ($i = 0; $i < count($match[1]); $i++) {
            echo $match[1][$i] . "\n";
           }
             }

          Ist das so gut, oder kann man den Script noch verkürzen / Verbessern?

          Danke für Eure Hilfe.

          Gruss
          Raffi

          1. Huhu  Raffi

            habe den ersten Thread nicht verfolgt, aber wenn Du nur den
            /Titel suchen möchtest reicht ja preg_match völlig aus.

            Wenn Du hingegen alle Konstrukte der Art /BEZEICHNER INHALT >>
            finden möchtest geht das prima mit preg_match_all.
            Das ist dann aber schon etwas kniffliger ;-)

            Viele Grüße

            lulu

            --
            bythewaythewebsuxgoofflineandenjoytheday
      2. Hello,

        pass bloß auf, dass keine merkt, dass Du noch einen offenen Thread zu dem Thema hast *ggg*

        Sorry, ich hab das heute Nacht mit den Reg_Exps auch nicht mehr hingekriegt. Dieser Weinthread hat mich ganz betrunken gemacht.

        Liebe Grüße aus http://www.braunschweig.de

        Tom

        --
        Fortschritt entsteht nur durch die Auseinandersetzung der Kreativen
        1. Ja sorry tut mir leid....Dachte hat ja gar nichts mehr mit der anfangsfrage zu tun.

          Habe jetzt noch folgendes versucht:
             $the_file_to_search = "test.pdf";
             $search_pattern = "/Title";
           $muster = "|/Title (([^)>]+))>>|";

          $fcontents = file ($the_file_to_search);
             while (list ($line_num, $line) = each ($fcontents)) {
                if (ereg($search_pattern,$line))
            preg_match_all ($muster, $line, $out, PREG_SET_ORDER);
            print $out[0][0].", ".$out[0][1]."\n";
            print $out[1][0].", ".$out[1][1]."\n";
             }

          Geht auch nicht....glaube ich bin jetzt betrunken *loool*

          Hst Du eine Idee Tom?

          Danke und Gruss
          Raffi