Intended Usage:
Read a HTML table and return everything between the <tr> tags if one of the words "bedroom/studio/penthouse" is present.
Example:
$text = '
<table>
<tr>
<th>Unit Type</th>
<th>Availability</th>
<th>Rates</th>
</tr>
<tr>
<td><b>One Bedroom</b> </td>
<td><p>Call for Availability</p></td>
<td><p>$830-$855</p></td>
</tr>
</table>';
preg_match_all('/<tr>(.{0,200})(Bedroom|Studio|Penthouse)(.{0,200})<\/tr>/isU',$text,$match, PREG_SET_ORDER);
print_r($match);
The Problem:
For some reason the above code seems to be acting 'greedy' by returning non-matching <tr> tags. For example, $match[0][0] would return:
[font=courier]<tr>
<th>Unit Type</th>
<th>Availability</th>
<th>Rates*</th>
</tr>
<tr>
<td><b>One Bedroom</b> </td>
<td><p>Call for Availability</p></td>
<td><p>$830-$855</p></td>
</tr>[/font]
Any idea what I'm doing wrong? Any help would be GREATLY appreciated!