RE: My eregi() code will not work.
| From: | Ted Knudson | Date: | Fri, 02 Jun 2000 23:02:36 +0000 |
| Subject: | RE: My eregi() code will not work. | ||
| References: | 1 | Groups: | php.general |
| Request: | Send a blank email to php-general+get-930@lists.php.net to get a copy of this message | ||
-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