Ewen Cumming schreef:
Actually bummer - testing on wrong version.
The U modifier is causing problems too - only matching the first character
instead of the whole string.
hmm, missed that, that might require adding ?U to relevant sub-assertion ...
I'm wondering if your regexp is not 'wrong' (big word in this case),
try this variation:
$pattern = '#<\\!T_([^> ]+)([^>]*)>(?:(.*)?<\\!T_end\\1>)?#si';
gives me the same output as your expected results, albeit that there
are less 'root' keys in the matches array ... so you may need to
change some code with regard to fishing out values from $matches
2008/9/12 Ewen Cumming <ewen.cumming@xxxxxxxxx>
Hi Jochem,
Replacing the 's' modifier with 'm' fixed it this instance but broke other
parts on the site (the same result as removing 's').
But the other regex ( $pattern = "/<!T_([^> ]+)([^>]*)>(.*?)<!T_end\\1>|<!T_([^>
]+)([^>]*)>/Ui";) is working perfectly.
I will continue to test and see if it throws up any other problems. Many
thanks for such a quick and great response.
I will file a bug report however I may need to submit the full test string
as cutting it down any further seems to 'fix' the discrepency.
Thanks again,
Ewen
2008/9/12 Jochem Maas <jochem@xxxxxxxxxxxxx>
Jochem Maas schreef:
Ewen Cumming schreef:
Hi everybody,
...
BUT I may have work around for you, try this regexp (replaces s modifer
with m modifier):
$pattern = "/<!T_([^> ]+)([^>]*)>(.*?)<!T_end\\1>|<!T_([^>
]+)([^>]*)>/mi";
the following pattern also seems to do what you want:
$pattern = "/<!T_([^> ]+)([^>]*)>(.*?)<!T_end\\1>|<!T_([^>
]+)([^>]*)>/Ui";
Im interested to know if either of these two solve your immediate issue.
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php