Вход Регистрация
Файл: Dvig/tst.php
Строк: 98
<?php 

     
//simple task: convert everything from utf-8 into an NCR[numeric character reference] 
     
class unicode_replace_entities { 
         public function 
UTF8entities($content="") { 
             
$contents = $this->unicode_string_to_array($content); 
             
$swap = ""; 
             
$iCount = count($contents); 
             for (
$o=0;$o<$iCount;$o++) { 
                 
$contents[$o] = $this->unicode_entity_replace($contents[$o]); 
                 
$swap .= $contents[$o]; 
             } 
             return 
mb_convert_encoding($swap,"UTF-8"); //not really necessary, but why not. 
         
} 

         public function 
unicode_string_to_array( $string ) { //adjwilli 
             
$strlen = mb_strlen($string); 
             while (
$strlen) { 
                 
$array[] = mb_substr( $string, 0, 1, "UTF-8" ); 
                 
$string = mb_substr( $string, 1, $strlen, "UTF-8" ); 
                 
$strlen = mb_strlen( $string ); 
             } 
             return 
$array; 
         } 

         public function 
unicode_entity_replace($c) { //m. perez 
             
$h = ord($c{0});    
             if (
$h <= 0x7F) { 
                 return 
$c; 
             } else if (
$h < 0xC2) { 
                 return 
$c; 
             } 
             
             if (
$h <= 0xDF) { 
                 
$h = ($h & 0x1F) << 6 | (ord($c{1}) & 0x3F); 
                 
$h = "&#" . $h . ";"; 
                 return 
$h; 
             } else if (
$h <= 0xEF) { 
                 
$h = ($h & 0x0F) << 12 | (ord($c{1}) & 0x3F) << 6 | (ord($c{2}) & 0x3F); 
                 
$h = "&#" . $h . ";"; 
                 return 
$h; 
             } else if (
$h <= 0xF4) { 
                 
$h = ($h & 0x0F) << 18 | (ord($c{1}) & 0x3F) << 12 | (ord($c{2}) & 0x3F) << 6 | (ord($c{3}) & 0x3F); 
                 
$h = "&#" . $h . ";"; 
                 return 
$h; 
             } 
         } 
     }
// 
     
     //utf-8 environment    
     
$content = "<strong>дизайн<br />";

     
$oUnicodeReplace = new unicode_replace_entities(); 
     
$content = $oUnicodeReplace->UTF8entities($content); 
     echo 
"<br />Result:<br />"; 
     echo 
$content; 
     
$source = htmlentities($content); 
     echo 
"<br />htmlentities of resulting data:<br />"; 
     echo 
$source; 

     echo 
"<br /><br />Note: Entities get replaced with 'literals' in textarea FF3<br /><br />"; 
     echo 
"<textarea style='width:300px;height:150px;'>"; 
     echo 
$content; 
     echo 
"</textarea>"; 
     
     echo 
"<br /><br />For editing NCR's rather than 'literals' in a textarea<br /><br />"; 
     echo 
"<textarea style='width:300px;height:150px;'>"; 
     echo 
preg_replace("/(&#)+/","&amp;#",$content);  
     echo 
"</textarea>"; 

 
?>
Онлайн: 2
Реклама