Datei einlesen und String rausschreiben ???

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

  • Datei einlesen und String rausschreiben ???

    Hi,
    hier mein Problem:

    Ich habe ein Datei, die etwa so aussieht.

    <HTML>
    <HEAD>
    <TITLE>Kriegsangst verdr&auml;ngt Arbeitslosigkeit von Platz 1 der Sorgenliste</TITLE>
    <META content="" name="GENERATOR">
    <TOBJECT>
    <TOBJECT.SUBJECT TOBJECT.SUBJECT.REFNUM="08000000" TOBJECT.SUBJECT.CODE=VER>
    </TOBJECT>
    <IPTC7901.WIREHEAD IPTC7901.PRIORITY="4" IPTC7901.CATEGORY="pl" IPTC7901.MSGNUM="292" IPTC7901.KEYWORD="/Gesellschaft/Umfrage/" IPTC7901.TIMEDATE="20011227 112343+0100" IPTC7901.SVCID="bdt" IPTC7901.CATCHLINE="/boulevard/">
    </HEAD>
    .......

    Jetzt möchte ich den Part ausgeben, der zwischen den <TITLE> Tags steht -> also: Kriegsangst verdr&auml;ngt Arbeitslosigkeit von Platz 1 der Sorgenliste

    Wie bekomme ich das hin ???

















    Manus manum lavat.

  • #2
    $f = fopen('dateiname','rb') or die('Couldn\'t open file or forbidden.');
    $inhalt = fread($f) or die('Cannot read.');
    fclose($f);
    echo preg_replace("!<title>(.*?)</title>!i","\\1",$inhalt)

    CAT Music Files

    Kommentar


    • #3
      Hi Sky,
      wenn ich das so mache, wie Du sagst, gibt er auch das andere der Datei aus. Ich möchte aber nur diesen einen Satz ausgegeben haben, der zw. den TITLE-Tags ist.
      Ein anderes Problem ist, dass ich Array mit ca. 40 Dateien habe. Von diesen 40 Dateien soll nun überall die Headline rausgeschrieben werden.

      Zum bessren Verständis mein Quellcode:

      $dateiliste = dateien_einlesen($verzeichnis); //Dateinamen werden eingelesen

      for ($i = 0; $i < count($dateiliste); $i++)
      {
      $temp = date("d.m.Y H:i", filemtime("$verzeichnis/$dateiliste[$i]"));
      $fp = fopen("$verzeichnis/$dateiliste[$i]",'rb') or die('Couldn\'t open file or forbidden.');
      $inhalt = fread($fp, filesize ($zaehler_anmelden)) or die('Cannot read.');
      fclose($fp);
      echo preg_replace("!<title>(.*?)</title>!i","\\1",$inhalt);
      $dateiliste2[$i] = $temp." ".$dateiliste[$i]." ".$inhalt;
      }

      rsort($dateiliste2);

      $fp = fopen($outputdatei,"w"); // Datei zum Schreiben öffnen
      for ($i = 0; $i < $anz_anz; $i++)
      {
      list($k, $v) = each($dateiliste2);
      print "$v<br>";
      fwrite($fp,"$v<br>");
      }

      fclose($fp);


      Was macht eigentlich der Befehl: preg_replace("!<title>(.*?)</title>!i","\\1",$inhalt); genau ???
      Manus manum lavat.

      Kommentar


      • #4
        $inhalt = fread($fp, filesize ($zaehler_anmelden)) or die('Cannot read.');
        fclose($fp);
        preg_match("!<title>(.*?)</title>!i",$inhalt,$matches);
        echo $matches[1];

        Das !<title>(.*?)</title>!i ist eine sogenannte Regular Expression (Regulärer Ausdruck) oder auch Pattern (Muster) genannt. Es stellt eine Maske dar, nach der gesucht werden soll. Hier haben wir die zwei abgrenzenden ! (können aber auch z.B. / sein, das steht jedem frei) und einen beliebig langen (0 oder mehr Zeichen) Text zwischen den Zeichenfolgen <title> und </title>. Das i ist ein sog. Modifier, der hier beschreibt, dass Groß- und Kleinschreibung des Patterns egal ist. Geprüft auf dieses Pattern wird $inhalt.

        CAT Music Files

        Kommentar


        • #5
          Hi Sky,
          wo kann ich denn diese Befehle mal nachschlagen. Kannst Du mir mal paar Ressourcen nennen ???
          Ich arbeite eigentlich mit selfphp und da kann ich leider sowas wie preg_match nicht finden ;-(

          Sonst funzt es aber hervorragend.

          Danke
          Manus manum lavat.

          Kommentar


          • #6
            http://www.php.net/manual/de/ref.pcre.php
            http://www.perldoc.com/perl5.6.1/pod/perlre.html

            CAT Music Files

            Kommentar

            Lädt...
            X