`
heaven__18
  • 浏览: 30655 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

php实现java的byte数组转换

阅读更多

由于工作需要,自己写的一个php实现java的byte数组转换的类。


<?php

/**
 * byte数组与字符串转化类
 * @author zikie
 * Created on 2011-7-15
 */

class Bytes {
   
    /**
     * 转换一个String字符串为byte数组
     * @param $str 需要转换的字符串
     * @param $bytes 目标byte数组
     * @author Zikie
     */
    
    public static function getBytes($str) {

        $len = strlen($str);
        $bytes = array();
           for($i=0;$i<$len;$i++) {
               if(ord($str[$i]) >= 128){
                   $byte = ord($str[$i]) - 256;
               }else{
                   $byte = ord($str[$i]);
               }
            $bytes[] =  $byte ;
        }
        return $bytes;
    }
   
    /**
     * 将字节数组转化为String类型的数据
     * @param $bytes 字节数组
     * @param $str 目标字符串
     * @return 一个String类型的数据
     */
    
    public static function toStr($bytes) {
        $str = '';
        foreach($bytes as $ch) {
            $str .= chr($ch);
        }

           return $str;
    }
   
    /**
     * 转换一个int为byte数组
     * @param $byt 目标byte数组
     * @param $val 需要转换的字符串
     * @author Zikie
     */
   
    public static function integerToBytes($val) {
        $byt = array();
        $byt[0] = ($val & 0xff);
        $byt[1] = ($val >> 8 & 0xff);
        $byt[2] = ($val >> 16 & 0xff);
        $byt[3] = ($val >> 24 & 0xff);
        return $byt;
    }
   
    /**
     * 从字节数组中指定的位置读取一个Integer类型的数据
     * @param $bytes 字节数组
     * @param $position 指定的开始位置
     * @return 一个Integer类型的数据
     */
    
    public static function bytesToInteger($bytes, $position) {
        $val = 0;
        $val = $bytes[$position + 3] & 0xff;
        $val <<= 8;
        $val |= $bytes[$position + 2] & 0xff;
        $val <<= 8;
        $val |= $bytes[$position + 1] & 0xff;
        $val <<= 8;
        $val |= $bytes[$position] & 0xff;
        return $val;
    }

    /**
     * 转换一个shor字符串为byte数组
     * @param $byt 目标byte数组
     * @param $val 需要转换的字符串
     * @author Zikie
     */
   
    public static function shortToBytes($val) {
        $byt = array();
        $byt[0] = ($val & 0xff);
        $byt[1] = ($val >> 8 & 0xff);
        return $byt;
    }
   
    /**
     * 从字节数组中指定的位置读取一个Short类型的数据。
     * @param $bytes 字节数组
     * @param $position 指定的开始位置
     * @return 一个Short类型的数据
     */
    
    public static function bytesToShort($bytes, $position) {
        $val = 0;
        $val = $bytes[$position + 1] & 0xFF;
        $val = $val << 8;
        $val |= $bytes[$position] & 0xFF;
        return $val;
    }
   
}
?>

分享到:
评论
1 楼 tron.lu 2012-02-06  
3des 加密的时候用吗?

相关推荐

    把十六进制的位串转化为byte数组

    在Java编程中,将十六进制位串转化为byte数组是一项常见的操作,特别是在处理二进制数据、网络通信或者加密解密等领域。这篇博文"把十六进制的位串转化为byte数组"可能就是针对这个主题提供了一个实用的方法或工具。...

    基于JSON实现传输byte数组过程解析

    在Java中,如果直接尝试将byte数组转换为JSON对象,会遇到问题,因为JSON不支持直接嵌入二进制数据。为了解决这个问题,我们可以利用Base64编码技术。Base64是一种用于将任意二进制数据转换为ASCII字符集表示的方法...

    php字符串与byte字节数组转化类.zip

    介绍php字符串与byte字节数组转化类,转换一个String字符串为byte数组,将字节数组转化为String类型的数据,转换一个int为byte数组,从字节数组中指定的位置读取一个Integer类型的数据,转换一个shor字符串为byte...

    Silverlight将图片转换为byte的实现代码

    最后,为了便于查看,将byte数组转换为UTF8字符串并在文本框中显示。 此外,代码还包含了一个将byte数组还原为图片的功能,这在调试或测试时非常有用: ```csharp private void button1_Click(object sender, ...

    Java中byte[]、String、Hex字符串等转换的方法

    在Java中,byte[]和byte可以通过合并来实现。合并的方法可以使用系统提供的数组复制方法System.arraycopy()。下面是一个简单的示例代码: ```java public byte[] byteMerger(byte byte_1, byte[] byte_2) { byte[] ...

    java使用Hex编码解码实现Aes加密解密功能示例

    在这个示例中,密钥首先是以字符串形式存在,然后通过`Hex.decodeHex()`方法将其从Hex编码转换回原始的字节数组,这是因为AES算法需要字节形式的密钥。如果密钥是经过Hex编码的,那么在使用之前必须进行解码。 接...

    将文件进行zip压缩并base64加密和解密

    在Java中,我们可以使用`java.util.zip`包中的`ZipOutputStream`和`ZipEntry`类来实现文件的压缩。以下是一个简单的示例,展示如何将单个文件压缩成ZIP文件: ```java import java.io.*; import java.util.zip.*; ...

    java模拟PHP的pack和unpack类

    通过以上代码,Java程序员现在可以使用`PackUtil.pack()`将16进制字符串转换为字节数组,然后使用`PackUtil.unpack()`将字节数组恢复为16进制字符串。这种方法虽然不能完全模拟PHP的`pack`和`unpack`函数的所有功能...

    java的des加密用到的base64包

    1. `encodeBytes(byte[])`:将字节数组编码为Base64字符串。 2. `decode(String)`:将Base64字符串解码回字节数组。 3. `getEncoder()` 和 `getDecoder()`:获取Base64编码器和解码器对象,可以进行自定义配置,例如...

    java语言入门.php

    7. **数组**:Java中的数组是一组相同类型的元素集合,可以是一维、二维或多维。 8. **类与对象**:学习如何定义类,声明属性(fields)和方法(methods),并通过new关键字实例化对象。 9. **封装、继承和多态**...

    java web上传文件

    这个场景描述的是使用HTML、JSP(JavaServer Pages)或者PHP来实现一个简单的文件上传功能,将小图片存入数据库。下面将详细介绍这个过程涉及的关键知识点。 1. **HTML表单**: 在HTML页面中,我们需要创建一个`...

    关于微信小程序获取小程序码并接受buffer流保存为图片的方法

    这个函数读取流的所有数据,并将其转换为Byte数组。 4. **保存图片**:Byte数组可以直接写入文件系统,生成图片文件。在示例代码中,使用了`File.WriteAllBytes()`方法,将 Byte 数组写入到服务器的指定路径下,...

    java程序设计概述

    Java中的方法是实现特定功能的代码块,它们可以接受参数并返回结果。方法的声明由方法名、参数列表和返回类型组成,而方法重载则是指具有相同名称但参数列表不同的多个方法。例如: ```java public int max(int a, ...

    Java经典理论面试100题.pdf

    37. **编码转换**:使用`new String(bytes, "GBK").getBytes("ISO-8859-1")`实现GBK到ISO-8859-1的转换。 38. **四舍五入**:使用`Math.round()`方法进行四舍五入。 39. **随机数**:`Random`类提供生成随机数的...

    java world文档

    若类型不匹配,可以通过类型转换来确保一致性。 2. **无返回值**:`return;` - **适用情况**:当方法声明为`void`类型,表示该方法不返回任何值。 - **作用**:直接退出方法,不返回任何值。 #### 二、JSP技术...

    Android应用源码安卓拍照上传实现代码附带php端.zip

    以OkHttp为例,你需要创建一个请求体,将Bitmap转换为字节数组: ```java ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); imageBitmap.compress(Bitmap.CompressFormat.JPEG, 100, ...

    android 拍照后上传到php服务器的代码

    接下来,我们需要将图片转换为字节数组以便上传。可以使用`BitmapFactory`和`ByteArrayOutputStream`完成: ```java Bitmap bitmap = MediaStore.Images.Media.getBitmap(contentResolver, imageUri); ...

    安卓Android源码——安卓拍照上传实现代码附带php端.zip

    `uploadImage`函数中,我们需要使用HttpURLConnection或者OkHttp等网络库将图片数据转换为字节数组,然后发送POST请求到服务器: ```java private void uploadImage(Bitmap image) { ByteArrayOutputStream baos =...

    Volley实现文件的上传

    在上述代码中,`readFileToBytes()`是一个辅助方法,用于读取文件内容并转换为字节数组。`responseListener`和`errorListener`分别用于处理成功的响应和错误情况。 最后,要注意的是,文件上传可能遇到网络不稳定、...

    字符串按照指定的字节数来截取

    但是,Java的字符串是Unicode的,`getBytes()`会根据指定的字符集编码字符串为字节数组。例如: ```java String str = "你好,世界"; int byteCount = 5; // 指定字节数 byte[] bytes = str.getBytes("UTF-8"); // ...

Global site tag (gtag.js) - Google Analytics