RE: My eregi() code will not work.

From: 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 > > > > >

« previous php.general (#932) next »