neuroman: zwischen <body>Tags auslesen

Hallo,

kann mir jemand sagen, wie ich mittels PHP nur den Inhalt zwischen den <Body>Tags einer Datei auslesen kann. Oder ist dan nicht möglich?

Vielen Danka an alle,

NeuroMan

  1. Hallo!

    kann mir jemand sagen, wie ich mittels PHP nur den Inhalt zwischen den <Body>Tags einer Datei auslesen kann. Oder ist dan nicht möglich?

    http://www.dclp-faq.de/q-regexp-grosser-text.html

    MfG, André Laugks

    1. Hallo Andrè,

      danke für die schnell Hilfe.
      Gab aber noch Probleme beim Einlesen der Datei.

      Das habe ich mit readfile gemacht - klappt aber nicht:

      $str = readfile("test.htm");

      preg_match_all("=<body[^>]*>(.*)</body>=siU", $str, $a);
        print $a[1][0];

      Es wird die vollständige Datei test.htm ausgegeben.
      Kannst Du mir weiterhelfen?

      Vielen Dank,

      NeuroMan

      1. Hallo!

        Das habe ich mit readfile gemacht - klappt aber nicht:

        $str = readfile("test.htm");

        preg_match_all("=<body[^>]*>(.*)</body>=siU", $str, $a);
          print $a[1][0];

        Verwende nicht readfile(), sondern folgende Funktionen.

        $fp=fopen($filename, "r");
        $str = fread($fp, filesize($$filename));
        fclose($fp);

        preg_match_all("=<body[^>]*>(.*)</body>=siU", $str, $a);
        print $a[1][0];

        MfG, André Laugks

        1. Hallo!

          $str = fread($fp, filesize($$filename));

          Kleiner Fehler, Doppeltes Dollarzeichen!

          $str = fread($fp, filesize($filename));

          MfG, André Laugks

      2. Hallo Andrè,

        danke für die schnell Hilfe.
        Gab aber noch Probleme beim Einlesen der Datei.

        Das habe ich mit readfile gemacht - klappt aber nicht:

        $str = readfile("test.htm");

        Hier liegt das Problem. Die PHP-Funktion readfile liefert nämlich nicht den Inhalt der Datei als Zeichenkette zurück, sondern gibt die Datei direkt aus. Verwende statt dessen:

        $fd = fopen( "test.htm", "r" );
        $str = fread( $fd, 100000 );
        fclose( $fd );

        Damit werden maximal 100000 Zeichen aus der Datei in die Stringvariable eingelesen.

        preg_match_all("=<body[^>]*>(.*)</body>=siU", $str, $a);
          print $a[1][0];

        Es wird die vollständige Datei test.htm ausgegeben.
        Kannst Du mir weiterhelfen?

        Vielen Dank,

        NeuroMan