gpt4 book ai didi

PHP实现ASCII码与字符串相互转换的方法

转载 作者:qq735679552 更新时间:2022-09-28 22:32:09 26 4
gpt4 key购买 nike

CFSDN坚持开源创造价值,我们致力于搭建一个资源共享平台,让每一个IT人在这里找到属于你的精彩世界.

这篇CFSDN的博客文章PHP实现ASCII码与字符串相互转换的方法由作者收集整理,如果你对这篇文章有兴趣,记得点赞哟.

本文实例讲述了PHP实现ASCII码与字符串相互转换的方法。分享给大家供大家参考,具体如下:

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
<?php
class ascii {
   /**
    * 将ascii码转为字符串
    * @param type $str 要解码的字符串
    * @param type $prefix 前缀,默认:&#
    * @return type
    */
   function decode( $str , $prefix = "&#" ) {
     $str = str_replace ( $prefix , "" , $str );
     $a = explode ( ";" , $str );
     foreach ( $a as $dec ) {
       if ( $dec < 128) {
         $utf .= chr ( $dec );
       } else if ( $dec < 2048) {
         $utf .= chr (192 + (( $dec - ( $dec % 64)) / 64));
         $utf .= chr (128 + ( $dec % 64));
       } else {
         $utf .= chr (224 + (( $dec - ( $dec % 4096)) / 4096));
         $utf .= chr (128 + ((( $dec % 4096) - ( $dec % 64)) / 64));
         $utf .= chr (128 + ( $dec % 64));
       }
     }
     return $utf ;
   }
   /**
    * 将字符串转换为ascii码
    * @param type $c 要编码的字符串
    * @param type $prefix 前缀,默认:&#
    * @return string
    */
   function encode( $c , $prefix = "&#" ) {
     $len = strlen ( $c );
     $a = 0;
     while ( $a < $len ) {
       $ud = 0;
       if (ord( $c { $a }) >= 0 && ord( $c { $a }) <= 127) {
         $ud = ord( $c { $a });
         $a += 1;
       } else if (ord( $c { $a }) >= 192 && ord( $c { $a }) <= 223) {
         $ud = (ord( $c { $a }) - 192) * 64 + (ord( $c { $a + 1}) - 128);
         $a += 2;
       } else if (ord( $c { $a }) >= 224 && ord( $c { $a }) <= 239) {
         $ud = (ord( $c { $a }) - 224) * 4096 + (ord( $c { $a + 1}) - 128) * 64 + (ord( $c { $a + 2}) - 128);
         $a += 3;
       } else if (ord( $c { $a }) >= 240 && ord( $c { $a }) <= 247) {
         $ud = (ord( $c { $a }) - 240) * 262144 + (ord( $c { $a + 1}) - 128) * 4096 + (ord( $c { $a + 2}) - 128) * 64 + (ord( $c { $a + 3}) - 128);
         $a += 4;
       } else if (ord( $c { $a }) >= 248 && ord( $c { $a }) <= 251) {
         $ud = (ord( $c { $a }) - 248) * 16777216 + (ord( $c { $a + 1}) - 128) * 262144 + (ord( $c { $a + 2}) - 128) * 4096 + (ord( $c { $a + 3}) - 128) * 64 + (ord( $c { $a + 4}) - 128);
         $a += 5;
       } else if (ord( $c { $a }) >= 252 && ord( $c { $a }) <= 253) {
         $ud = (ord( $c { $a }) - 252) * 1073741824 + (ord( $c { $a + 1}) - 128) * 16777216 + (ord( $c { $a + 2}) - 128) * 262144 + (ord( $c { $a + 3}) - 128) * 4096 + (ord( $c { $a + 4}) - 128) * 64 + (ord( $c { $a + 5}) - 128);
         $a += 6;
       } else if (ord( $c { $a }) >= 254 && ord( $c { $a }) <= 255) { //error
         $ud = false;
       }
       $scill .= $prefix . $ud . ";" ;
     }
     return $scill ;
   }
}
/*
  PHP 转 ASCII
  require_once "ascii_class.php";
*/
$aa = new ascii;
echo "<xmp>" ;
echo $str = $aa ->encode( "PHP编程:www.zzvips.com" );
echo "</xmp>" ;
echo $aa ->decode( $str );
?>

希望本文所述对大家PHP程序设计有所帮助.

最后此篇关于PHP实现ASCII码与字符串相互转换的方法的文章就讲到这里了,如果你想了解更多关于PHP实现ASCII码与字符串相互转换的方法的内容请搜索CFSDN的文章或继续浏览相关文章,希望大家以后支持我的博客! 。

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com