API16

JString/compliant: Difference between revisions

From Joomla! Documentation

Doxiki (talk | contribs)
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:




<span class="editsection" style="font-size:76%;">
<nowiki>[</nowiki>[[Description:JString/compliant|Edit Descripton]]<nowiki>]</nowiki>
</span>


{{Description:JString/compliant}}
 
{{subst:Description:JString/compliant}}


===Syntax===
===Syntax===
Line 46: Line 44:
</source>
</source>


<span class="editsection" style="font-size:76%;">
 
<nowiki>[</nowiki>[[SeeAlso:JString/compliant|Edit See Also]]<nowiki>]</nowiki>
{{subst:SeeAlso:JString/compliant}}
</span>
{{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 />