Gaetano,

Try using fread() instead of fgets(). You can read the entire file contents 
into a single variable. You could then use a regular expression to extract the 
content. Something like this:

// get contents of a file into a string
$filename = "/usr/local/something.txt";
$handle = fopen($filename, "r");
$contents = fread($handle, filesize($filename));
fclose($handle);
// pattern includes everything beginning with the opening body tag
// and ending with the closing body tag (tags included)
// s modifier allows a match across multiple lines
// i modifier to ignore case
$pattern ="/<body.*<\/body.*?>/si";
preg_match($pattern, $contents, $matches) ;
// $matches is an array with one element
echo $matches[0] ;

Randy Clamons
Systems Programming
Astro-auction.com


> ------------Original Message------------
> From: "Gaetano Savoca" <[EMAIL PROTECTED]>
> To: php-windows@lists.php.net
> Date: Thu, Jan-13-2005 10:19 PM
> Subject: Re: [PHP-WIN] including an HTML file
>
> On Friday, January 14, 2005 1:06 AM [GMT+1=CET],
> Gaetano Savoca <[EMAIL PROTECTED]> ha scritto:
> 
> > So i must do all manually
> > 
> > i write this
> > 
> >      <?php
> >            if(file_exists($corpo)){// controll for the file
> >            //Creating the filehandle for our input file
> >             $fh=fopen("$corpo", "r");
> > 
> >             //Seeding the while loop below with the first line of the
> > input file
> >             $line=fgets($fh);
> >             while (!feof($fh)){
> >                  //Once we hit the <BODY> tag, start echoing out 
> lines
> > until we hit </BODY>
> >                  if (preg_match("/<BODY/i", $line)){
> >                       while (!preg_match("/<\/BODY/i", $line =
> > fgets($fh))) echo $line;
> >                }
> >                 $line = fgets($fh);
> >              }
> >              fclose ($fh);
> >            }
> >> 
> > 
> > where $corpo is a variable for the name of the file.
> > if the file not existe the page have a blank body
> > 
> > Thanks
> > 
> > _________________________________
> > Gaetano Savoca
> > http://gsweb.altervista.org
> > 
> > 
> > 
> > 
> > 
> > On Thursday, January 13, 2005 11:16 PM [GMT+1=CET],
> > Leif Gregory <[EMAIL PROTECTED]> ha scritto:
> > 
> >> Hello Gaetano,
> >> 
> >> Thursday, January 13, 2005, 11:56:41 AM, you wrote:
> >>> How i can include in a HTML (with .php extension) file another HTML
> >>> file, i mean not all teh page but only the element of the <BODY>
> >>> tag?
> >> 
> >>> I would to include with the include (nomefile); the body of other
> >>> page
> >> 
> >>> There are some php function or some other way to do this?
> >> 
> >> Uhmmm.. Lesse. I did something similar to this when I wrote some 
> code
> >> to give me the headers from webservers. I had to use regexps to do
> >> it. 
> >> 
> >> Basically you could do something like this:
> >> 
> >> <?php
> >> 
> >> //Creating the filehandle for our input file
> >> $fh=fopen("myIncludeFile.html", "r");
> >> 
> >> //Seeding the while loop below with the first line of the input file
> >> $line=fgets($fh);
> >> 
> >> while (!feof($fh))
> >> {
> >>  $line = fgets($fh);
> >> 
> >>  //Once we hit the <BODY> tag, start echoing out lines until we hit
> >>  </BODY> if (preg_match("/<BODY/i", $line))
> >>  {
> >>     while (!preg_match("/<\/BODY/i", $line))
> >>     {
> >>        echo $line;
> >>        $line = fgets($fh);
> >>     }
> >>  }
> >>  else
> >>  {
> >>     $line = fgets($fh);
> >>  }
> >> }
> >> fclose ($fh);
> >> 
> >>> 
> >> 
> >> 
> >> I didn't actually test this, but it should work. I just took some
> >> odds and ends pieces from something else I wrote that was similar.
> >> 
> >> There's room for improvement. Like right now it'll continue
> >> processing the outer while loop after the </BODY> but since </HTML>
> >> usually follows on the next line I didn't think it too inefficient.
> >> You could make the outer while stop by ANDing with the condition of
> >> the inner while loop.
> >> 
> >> As always... There's going to be other ways to do this. Some of them
> >> are probably a heck of a lot better than mine.
> 
> -- 
> PHP Windows Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
> 


--
PHP Windows Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to