The following will do variable matching like you asked:

    if( ereg( '^<'.$var.'>(.*)$', $line, $matches ) )

Cheers,
Rob.


On Tue, 2003-09-16 at 13:34, Susan Ator wrote:
> It works beautifully. My only question is there a way to pass a variable to
> the ereg? In other words:
> 
>     if( ereg( '^<TO>(.*)$', $line, $matches ) )
> 
> would become:
> 
>     if( ereg( '^<$var>(.*)$', $line, $matches ) )
> 
> I've tried doing eval but that was a no go.
> 
> I have a lot of fields and I hate doing the same thing over and over if
> there is a way to avoid it. :)
> 
> sa
> 
> 
> -----Original Message-----
> From: Robert Cummings [mailto:[EMAIL PROTECTED]
> Sent: Tuesday, September 16, 2003 12:05 PM
> To: Susan Ator
> Cc: [EMAIL PROTECTED]
> Subject: Re: [PHP] How do I do this PERL in PHP?
> 
> 
> This isn't tested, but should work :)
> 
> //////////////////////////////////////////////////
> 
> $to = '';
> $subject = '';
> $message = '';
> 
> $matches = array();
> 
> $data = file( $file );
> foreach( $data as $id => $line )
> {
>     if( ereg( '^<TO>(.*)$', $line, $matches ) )
>     {
>         $to = trim( $matches[1] );
>         unset( $data[$id] );
>     }
>     else
>     if( ereg( '^<FROM>(.*)$', $line, $matches ) )
>     {
>         $from = trim( $matches[1] );
>         unset( $data[$id] );
>     }
> }
> 
> $message = implode( '', $data );
> 
> //////////////////////////////////////////////////
> 
> Cheers,
> Rob.
> 
> 
> On Tue, 2003-09-16 at 11:46, Susan Ator wrote:
> > I have a text file with the following format:
> > 
> > <TO> name
> > <SUBJECT> stuff
> > <MESSAGE>
> > message text
> > message text
> > message text
> > 
> > I need to be able to assign a variable to the data like so:
> > 
> > $to = "everything to the left of <TO>";
> > $subject = "everything to the left of <SUBJECT>";
> > $message = "everything to the left of <MESSAGE>";
> > 
> > so
> > 
> > $to = "name";
> > $subject = "stuff";
> > $message = "message text\nmessage text\nmessage text\n";
> > 
> > This is how it's being done in perl:
> > 
> > open(INPUT, $file) or die "couldn't open $file for reading: $!\n";
> > while (defined (my $line = <INPUT>)) {
> >   chomp $line;
> >   field_found($line,"<TO>",\$to);
> >   field_found($line,"<SUBJECT>",\$subject);
> >   field_found($line,"<MESSAGE>",\$message);
> > }
> > 
> > sub field_found(@_) {
> >   my $line = shift;
> >   my $fld  = shift;
> >   my $val  = shift;
> > 
> >   my $pos = index($line,$fld);
> >   if ($pos == 0) { # found field
> >     my $flen = length $fld;
> >     my $llen = length $line;
> >     $$val = substr($line,$flen,$llen);
> >   } # found field
> > }
> > 
> > How in the world can I translate this to php?
> > 
> > sa
> > 
> > -- 
> > PHP General Mailing List (http://www.php.net/)
> > To unsubscribe, visit: http://www.php.net/unsub.php
> > 
> > 
> -- 
> .---------------------------------------------.
> | Worlds of Carnage - http://www.wocmud.org   |
> :---------------------------------------------:
> | Come visit a world of myth and legend where |
> | fantastical creatures come to life and the  |
> | stuff of nightmares grasp for your soul.    |
> `---------------------------------------------'
> 
> -- 
> PHP General Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php
> 
-- 
.---------------------------------------------.
| Worlds of Carnage - http://www.wocmud.org   |
:---------------------------------------------:
| Come visit a world of myth and legend where |
| fantastical creatures come to life and the  |
| stuff of nightmares grasp for your soul.    |
`---------------------------------------------'

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

Reply via email to