Thank you James and Niklas.

Here is the code that I need:

<?PHP

// open file
$fd = fopen ("./text.htm", "r");

// load contents into a variable
while (!feof ($fd))
{
    $content .= fgets($fd, 4096);
}

// close file
fclose ($fd);

// remove char returns and co
$content = preg_replace("/(\r\n)|(\n\r)|(\n|\r)/", " ",$content);

if 
(preg_match_all("/<BLOCKQUOTE><P>(.*)<\/P><\/BLOCKQUOTE>/U",$content,$matches))
{
        echo "<pre>";
        var_dump($matches);
        echo "</pre>";
}

?>

This returns exactly what I want (see my original post to learn what that 
is.)

Thank again.

:-))

S.

>From: "liljim" <[EMAIL PROTECTED]>
>Reply-To: "liljim" <[EMAIL PROTECTED]>
>To: <[EMAIL PROTECTED]>
>Subject: Re: [PHP] Returning mutliple matches of a regex with preg_match()
>Date: Thu, 21 Mar 2002 11:42:35 -0000
>
>Also, make sure that you make the match "ungreedy" with the U modifier, or
>use:
>(.*?)
>
>
>James
>
>"Niklas lampén"  wrote in message
>000501c1d0aa$4a5d97f0$ba93c5c3@Niklas">news:000501c1d0aa$4a5d97f0$ba93c5c3@Niklas...
> > preg_match_all();
> >
> >
> > Niklas
> >
> > -----Original Message-----
> > From: Stefen Lars [mailto:[EMAIL PROTECTED]]
> > Sent: 21. maaliskuuta 2002 7:28
> > To: [EMAIL PROTECTED]
> > Subject: [PHP] Returning mutliple matches of a regex with preg_match()
> >
> >
> > Hello all
> >
> > I have been scratching my head for the last two days about this regular
> > expression problem. I would be really VERY happy if someone could help
> > me!
> >
> > I have the following text in the file 'text.htm', for example:
> >
> > --
> >
> > <BLOCKQUOTE><P>
> > Cow, Cow, Cow, Cow, Cow
> > Cow, Cow, Cow, Cow, Cow
> > Cow, Cow, Cow, Cow, Cow
> > a lot of lines
> > </P></BLOCKQUOTE>
> >
> > <p>boring stuff - we are not interested in this....</p>
> >
> > <BLOCKQUOTE><P>
> > Chicken, Chicken, Chicken
> > Chicken, Chicken, Chicken
> > Chicken, Chicken, Chicken
> > more lines
> > </P></BLOCKQUOTE>
> >
> > <p>more boring stuff - we are not interested in this....</p>
> >
> > <BLOCKQUOTE><P>
> > Rabbit, Rabbit, Rabbit, Rabbit
> >
> > </P></BLOCKQUOTE>
> >
> > <p>even more boring stuff - we are not interested in this....</p>
> >
> > <BLOCKQUOTE><P>
> > Pig, Pig, Pig, Pig, Pig
> > </P></BLOCKQUOTE>
> >
> > --
> >
> > I want to return all the stuff between <BLOCKQUOTE><P> ...
> > </P></BLOCKQUOTE>
> > in an array. One element per match. For example, for the above text, I
> > would
> > like to get back an array back like this:
> >
> > array(
> > "Cow, Cow, Cow, Cow, Cow Cow, Cow, Cow, Cow, Cow Cow, Cow, Cow,
> > Cow, Cow a
> > lot of lines",
> > "Chicken, Chicken, Chicken Chicken, Chicken, Chicken Chicken,
> > Chicken,
> > Chicken more lines",
> > "Rabbit, Rabbit, Rabbit, Rabbit",
> > "Pig, Pig, Pig, Pig, Pig"
> > )
> >
> > I have been trying to do this with (many variations of) the following
> > code:
> >
> > --
> >
> > <?PHP
> >
> > // open file
> > $fd = fopen ("./text.htm", "r");
> >
> > // load contents into a variable
> > while (!feof ($fd))
> > {
> >     $content .= fgets($fd, 4096);
> > }
> >
> > // close file
> > fclose ($fd);
> >
> > // remove char returns and co.
> > $content = preg_replace("/(\r\n)|(\n\r)|(\n|\r)/", " ",$content);
> >
> > // match agains regex -- this does not work correctly....
> > if
> > (preg_match("/<BLOCKQUOTE><P>(.*)<\/P><\/BLOCKQUOTE>/i",$content,$matche
> > s))
> > {
> > echo "<pre>";
> > var_dump($matches);
> > echo "</pre>";
> > }
> >
> > ?>
> >
> > --
> >
> > For the above, var_dump() returns this:
> >
> > --
> >
> > array(2) {
> >   [0]=>
> >   string(556) "<BLOCKQUOTE><P> Cow, Cow, Cow, Cow, Cow Cow, Cow, Cow,
> > Cow,
> > Cow Cow, Cow, Cow, Cow, Cow a lot of lines </P></BLOCKQUOTE>  <p>boring
> > stuff - we are not interested in this....</p>  <BLOCKQUOTE><P> Chicken,
> > Chicken, Chicken Chicken, Chicken, Chicken Chicken, Chicken, Chicken
> > more
> > lines </P></BLOCKQUOTE>  <p>more boring stuff - we are not interested in
> >
> > this....</p>  <BLOCKQUOTE><P> Rabbit, Rabbit, Rabbit, Rabbit
> > </P></BLOCKQUOTE>  <p>even more boring stuff - we are not interested in
> > this....</p>  <BLOCKQUOTE><P> Pig, Pig, Pig, Pig, Pig </P></BLOCKQUOTE>"
> >   [1]=>
> >   string(524) " Cow, Cow, Cow, Cow, Cow Cow, Cow, Cow, Cow, Cow Cow,
> > Cow,
> > Cow, Cow, Cow a lot of lines </P></BLOCKQUOTE>  <p>boring stuff - we are
> > not
> > interested in this....</p>  <BLOCKQUOTE><P> Chicken, Chicken, Chicken
> > Chicken, Chicken, Chicken Chicken, Chicken, Chicken more lines
> > </P></BLOCKQUOTE>  <p>more boring stuff - we are not interested in
> > this....</p>  <BLOCKQUOTE><P> Rabbit, Rabbit, Rabbit, Rabbit
> > </P></BLOCKQUOTE>  <p>even more boring stuff - we are not interested in
> > this....</p>  <BLOCKQUOTE><P> Pig, Pig, Pig, Pig, Pig "
> > }
> >
> > --
> >
> > Clearly not what I want.
> >
> > Is my approach here incorrect? Or is it indeed possible to construct a
> > regex
> > to do what I want (with just one pass of the text)?
> >
> > Thank you in advance.
> >
> > :-))
> >
> > S.
> >
> >
> >
> >
> >
> >
> > _________________________________________________________________
> > Send and receive Hotmail on your mobile device: http://mobile.msn.com
> >
> >
> > --
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> >
>
>
>


_________________________________________________________________
Join the world’s largest e-mail service with MSN Hotmail. 
http://www.hotmail.com


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

Reply via email to