php-i18n Digest 10 Jul 2007 17:14:42 -0000 Issue 359
Topics (messages 1074 through 1076):
Re: Check if PCRE has UTF-8 support compiled in
1074 by: Nuno Lopes
1075 by: Andries Seutens
unsub
1076 by: a.h.s. boy
Administrivia:
To subscribe to the digest, e-mail:
[EMAIL PROTECTED]
To unsubscribe from the digest, e-mail:
[EMAIL PROTECTED]
To post to the list, e-mail:
[EMAIL PROTECTED]
----------------------------------------------------------------------
--- Begin Message ---
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
--- End Message ---
--- Begin Message ---
Nuno Lopes,
Thanks a lot! I was able to resolve the issue!
Odd enough, POSIX named classes (eg [:alnum:] are not supported either
when PCRE is not compiled with UTF-8 and Unicode support. Which is
weird, because the manual states elsewise.
For those of you interested to see the fix, please refer to:
http://framework.zend.com/fisheye/browse/Zend_Framework/trunk/library/Zend/Filter/Alnum.php?r=5468
Nuno, thanks again!
Best,
--
Andries Seutens
http://andries.systray.be
Nuno Lopes schreef:
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
Gecontroleerd op virussen door de JOJO Secure Gateway.
--- End Message ---
--- Begin Message ---
-------------------------------------------------------------------
a.h.s. boy
spud(at)nothingness.org "as yes is to if,love is to yes"
http://www.nothingness.org/
-------------------------------------------------------------------
--- End Message ---