Re: [PHP-I18N] Check if PCRE has UTF-8 support compiled in
[email protected] ("Nuno Lopes") Wed, 27 Jun 2007 22:33:09 +0100
| Newsgroups | php.i18n |
|---|---|
| Message-ID | <004501c7b902$c2456770$0100a8c0@pc07653> |
The first thing I would do is to convince those guys (RedHat) to compile
PCRE with UTF-8 and Unicode stuff support (that's 2 different build
options). They have probably forgot to include them.
Ok, so to detect if you have UTF-8 support.. uhm we could add a function to
do that (PCRE exports that information), but I think you want something
quicker than asking everybody to upgrade php :P You can always try to match
a simple thing and see if it returns an error or not.
e.g. if (!preg_match('/\pL/u', 'a')) die('bastard');
Nuno
----- Original Message -----
From: "Andries Seutens" <[email protected]>
To: <[email protected]>
Sent: Wednesday, June 27, 2007 6:36 PM
Subject: [PHP-I18N] Check if PCRE has UTF-8 support compiled in
> Dear all,
>
> In the Zend Framework we have written a filter to filter anything but
> alpha an numeric characters from a string. The regular expression for this
> filter looks like so:
>
> $result = preg_replace('/[^\p{L}\p{N}\s]/u', '', '!!testing123!!');
>
> Apperently, on some systems like RHEL however, this regular expression
> seems to fail. The reason that it is failing for you appears to be that
> your PCRE does not have UTF-8 support compiled in? This is likely the
> result of the particular distribution not having used the --enable-utf8
> option.
>
> What this means to us is that the class should become aware of whether
> such support is available, and act accordingly.
>
> My question to you guys is, how would such a check for support best be
> done? Perhaps detect the error condition, which would only occur in the
> event that the system does not have utf-8 support? But how (preferably
> without going down the dirty path .... )?
>
> Best regards,
>
>
> Andries Seutens
> http://andries.systray.be
> --
> PHP Unicode & I18N Mailing List (http://www.php.net/)
> To unsubscribe, visit: http://www.php.net/unsub.php