首页 > 语言 > PHP > 正文

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

2024-05-04 23:56:55
字体:
来源:转载
供稿:网友

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

<?phpclass 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.vevb.com");echo "</xmp>";echo $aa->decode($str);?>

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


注:相关教程知识阅读请移步到PHP教程频道。
发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

图片精选