RE: My eregi() code will not work.
| From: | Philip Hallstrom | Date: | Fri, 02 Jun 2000 23:10:01 +0000 |
| Subject: | RE: My eregi() code will not work. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-932@lists.php.net to get a copy of this message | ||
The difference is that in the example in the manual they have multiple
()-ized expressions.
There's a difference b/n the following:
if(ereg("^(.+)/([0-9])\.([0-9]+)",
and
if(ereg("^(.+)/[0-9]\.[0-9]+",
The first will set $matches[0],$matches[1], and $matches[2].
The second will set $matches[0] only. Just like the manual says...
On Fri, 2 Jun 2000, Ted Knudson wrote:
> -philip
>
> <?php
>
> $Note = "<br>This is line 1.<br>This is line 2.<br>This is line
> 3.<br>";
>
> eregi("(<br>)", $Note, $matches);
> Print $Note."<br>";
> Print $matches[0]."0<br>";
> Print $matches[1]."1<br>";
> Print $matches[2]."2<br>";
> Print $matches[3]."3<br>";
>
> ?>
>
> > Sorry, I missed the very original part of this thread, but what are you
> > trying to do exactly? Part of the problem might be that you're not
> > seeing it displayed since it's just displaying BR's... maybe... on my
> > machine using the above (minus the ()'s around the <BR> in ereg) assigns
> > $matches[0] to "<br>" and that's it. That's all it should do
> > according
> > to the manual..
> > if you want each of those lines as an element in an array, you should
> > look at split/explode...
> > hope this helps
> > -philip
>
> The way I read the manual and the example I have from Core PHP I should get
> from the $matches:
> $matches[0] should print out; This is line 1. This is line 2. This is line
> 3.
> $matches[1] should print out; This is line 1.
> $matches[2] should print out; This is line 2.
> $matches[3] should print out; This is line 3.
>
> >From the Manual:
> int ereg (string pattern, string string [, array regs])
>
> Searchs string for matches to the regular expression given in pattern.
>
> If matches are found for parenthesized substrings of pattern and the
> function is called with the third argument regs, the matches will be stored
> in the elements of regs. $regs[1] will contain the substring which starts at
> the first left parenthesis; $regs[2] will contain the substring starting at
> the second, and so on. $regs[0] will contain a copy of string.
>
> Searching is case sensitive.
>
> Returns true if a match for pattern was found in string, or false if no
> matches were found or an error occurred.
>
> The following code snippet takes a date in ISO format (YYYY-MM-DD) and
> prints it in DD.MM.YYYY format: Example 1. ereg() example
>
> 1
> 2 if ( ereg( "([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})", $date, $regs ) ) {
> 3 echo "$regs[3].$regs[2].$regs[1]";
> 4 } else {
> 5 echo "Invalid date format: $date";
> 6 }
>
> Example in Core PHP;
>
> </HEAD>
> <BODY>
> <?
> // show User Agent
> print("User Agent: $HTTP_USER_AGENT<BR>\n");
> // try to parse User Agent
> if(ereg("^(.+)/([0-9])\.([0-9]+)",
> $HTTP_USER_AGENT, $matches))
> {
> print("Full match: $matches[0]<BR>\n");
> print("Browser: $matches[1]<BR>\n");
> print("Major Version: $matches[2]<BR>\n");
> print("Minor Version: $matches[3]<BR>\n");
> }
> else
> {
> print("User Agent not recognized");
> }
> ?>
> </BODY>
> </HTML>
>
> Ted
>
>
>
>
>