I ran across a regular expression modifier today that I have not used before. When matching some text that spans multiple lines, you can use the ‘s’ modifier at the end of the regular expression to treat the string as a single line.
For example, I was trying to match some html that spanned multiple lines like this
<td class='something'> This is the text I want to match </td>
This expression didn’t match:
preg_match_all("#<td class='someting'>(.+?)</td>#", $source_string, $matches);
But simply adding the ‘s’ flag after the closing #, it worked as desired:
preg_match_all("#<td class='someting'>(.+?)</td>#s", $source_string, $matches);