Programming Tutorials

is_utf8 in PHP

By: rodrigo in PHP Tutorials on 2011-07-31  

I've been working on a is_utf8 function and wanted to post it here, in addition to others i also took in consideration the 5000 char bug:

<?php 
define('_is_utf8_split',5000); 

function is_utf8($string) { // v1.01 
    if (strlen($string) > _is_utf8_split) { 
        // Based on: http://mobile-website.mobi/php-utf8-vs-iso-8859-1-59 
        for ($i=0,$s=_is_utf8_split,$j=ceil(strlen($string)/_is_utf8_split);$i < $j;$i++,$s+=_is_utf8_split) { 
            if (is_utf8(substr($string,$s,_is_utf8_split))) 
                return true; 
        } 
        return false; 
    } else { 
        // From http://w3.org/International/questions/qa-forms-utf-8.html 
        return preg_match('%^(?: 
                [x09x0Ax0Dx20-x7E]            # ASCII 
            | [xC2-xDF][x80-xBF]             # non-overlong 2-byte 
            |  xE0[xA0-xBF][x80-xBF]        # excluding overlongs 
            | [xE1-xECxEExEF][x80-xBF]{2}  # straight 3-byte 
            |  xED[x80-x9F][x80-xBF]        # excluding surrogates 
            |  xF0[x90-xBF][x80-xBF]{2}     # planes 1-3 
            | [xF1-xF3][x80-xBF]{3}          # planes 4-15 
            |  xF4[x80-x8F][x80-xBF]{2}     # plane 16 
        )*$%xs', $string); 
    } 
} 
?>






Add Comment

* Required information
1000

Comments

No comments yet. Be the first!

Most Viewed Articles (in PHP )

PHP code to write to a CSV file from MySQL query

Different versions of PHP - History and evolution of PHP

PHP code to import from CSV file to MySQL

Encrypting files using GnuPG (GPG) via PHP

PHP Warning: Unknown(): Unable to load dynamic library '/usr/local/php4/lib/php/extensions/no-debug ......

Decrypting files using GnuPG (GPG) via PHP

Send push notifications using Expo tokens in PHP

A Basic Example using PHP in AWS (Amazon Web Services)

Count occurrences of a character in a String in PHP

Password must include both numeric and alphabetic characters - Magento

Error: Length parameter must be greater than 0

Reading word by word from a file in PHP

Parent: child process exited with status 3221225477 -- Restarting

Convert a hex string into a 32-bit IEEE 754 float number in PHP

Floating point precision in PHP

Latest Articles (in PHP)