JString/compliant: Difference between revisions
From Joomla! Documentation
New page: ===Description===
Tests whether a string complies as UTF-8. This will be much faster than utf8_is_valid but will pass five and six octet UTF-8 sequences, which are not supported by Unicod... |
m clean up |
||
| Line 3: | Line 3: | ||
{{Description:JString/compliant}} | |||
{{subst:Description:JString/compliant}} | |||
===Syntax=== | ===Syntax=== | ||
| Line 46: | Line 44: | ||
</source> | </source> | ||
{{subst:SeeAlso:JString/compliant}} | |||
{{SeeAlso:JString/compliant}} | |||
===Examples=== | ===Examples=== | ||
Revision as of 14:27, 24 March 2017
Description
Tests whether a string complies as UTF-8. This will be much faster than utf8_is_valid but will pass five and six octet UTF-8 sequences, which are not supported by Unicode and so cannot be displayed correctly in a browser. In other words it is not as strict as utf8_is_valid but it's faster. If you use is to validate user input, you place yourself at the risk that attackers will be able to inject 5 and 6 byte sequences (which may or may not be a significant risk, depending on what you are are doing) valid http://www.php.net/manual/en/reference.pcre.pattern.modifiers.php#54805
{{subst:Description:JString/compliant}}
Syntax
static compliant($str)
| Parameter Name | Default Value | Description |
|---|---|---|
| $str | UTF-8 string to check |
Returns
boolean TRUE if string is valid UTF-8
Defined in
libraries/joomla/utilities/string.php
Importing
jimport( 'joomla.utilities.string' );
Source Body
public static function compliant($str)
{
if (strlen($str) == 0) {
return TRUE;
}
// If even just the first character can be matched, when the /u
// modifier is used, then it's valid UTF-8. If the UTF-8 is somehow
// invalid, nothing at all will match, even if the string contains
// some valid sequences
return (preg_match('/^.{1}/us',$str,$ar) == 1);
}
{{subst:SeeAlso:JString/compliant}}
Examples
<CodeExamplesForm />