Re: [PHP-I18N] Check if PCRE has UTF-8 support compiled in

[email protected] (Andries Seutens) Thu, 28 Jun 2007 14:37:22 +0200
Newsgroups php.i18n
Message-ID <[email protected]>
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.