`
bardo
  • 浏览: 378925 次
  • 性别: Icon_minigender_1
  • 来自: 上海
博客专栏
D1407912-ab64-3e76-ae37-b31aa4afa398
浅述PHP设计模式
浏览量:11821
9d6df9f7-91da-3787-a37c-0e826525dd5d
Zend Framewor...
浏览量:10129
85b628bd-a2ed-3de2-a4b1-0d34985ae8b6
PHP的IDE(集成开发环...
浏览量:9516
社区版块
存档分类
最新评论

[原创]PHP字符串与字节数组的快速互换

    博客分类:
  • PHP
PHP 
阅读更多

        要加密,则需要将字符串转为ASCII的字节数组。反之,则要转回来。代码为什么速度快?那就是,能不用FOR循环的,直接不用。使用PHP原有的函数,让它实现,这是最快的。

<?php
function stringToByteArray($str,$charset) {

    $str = iconv($charset,'UTF-16',$str);
    preg_match_all('/(.)/s',$str,$bytes);  //注:本文的盗版已经有了。不过,提示一下读者,这里的正则改了。
    $bytes=array_map('ord',$bytes[1]) ;
    return $bytes;

}

function byteArrayToString($bytes,$charset) {

    $bytes=array_map('chr',$bytes);
    $str=implode('',$bytes);
    $str = iconv('UTF-16',$charset,$str);
    return $str;

}

$byteArray=stringToByteArray('13亿人口大国,自认为精通PHP的还是相当多的!','utf-8');
print_r($byteArray);
$retStr=byteArrayToString($byteArray,'utf-8');
echo $retStr;

?>

 

每个函数只有4行代码,没有FOR循环,但当文本相当长时,你就能发现,差别真的很大。

 

 

注:希望各位读者注意:本人博文如未注明是转发,全系本人原创。网上盗用版本甚多。但由于博文在发布时,有可能是多次编辑增加内容,或因有瑕疵而需要修改。所以,请来这里查看原创正版。

1
2
分享到:
评论

相关推荐

    16进制与字符串、字节数组之间的转换

    根据给定的信息,本文将详细解释16进制与字符串、字节数组之间的转换方法,并结合提供的C#代码示例进行深入分析。 ### 一、16进制与整数之间的转换 #### 1.1 二进制转十六进制 在计算机科学中,经常需要将不同进制...

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

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

    vb6.0 字节数组和字符串的相互转换.rar

    在实际应用中,字节数组和字符串的转换通常与文件操作结合。例如,读取二进制文件到字节数组,然后转换成字符串;或者将字符串转换成字节数组,写入二进制文件。 示例: ```vb ' 读取二进制文件到字节数组 Open ...

    ASCII码字符串(十六进制)与字节数组的互转

    如果字节数组是通过ASCII字符串转换得到的,那么转换回的字符串将与原始ASCII字符串相同,除非字节数组包含非打印的ASCII码。 4. **十六进制表示**:在LabVIEW中,有时需要将字节数组表示为十六进制字符串,这对于...

    对字符串,字节数组进行GZIP压缩和解压缩

    对字符串,字节数组进行GZIP压缩和解压缩

    C#16进制与字符串字节数组之间的转换代码

    根据给定文件的信息,我们可以总结出以下关于C#中十六进制与字符串、字节数组之间转换的相关知识点: ### C#中十六进制与字符串、字节数组之间的转换 #### 一、概述 在计算机编程中,经常需要进行不同数据格式...

    java 16进制表示的字符串转换为字节数组 工具类

    /** * 16进制表示的字符串转换为字节数组 * @param hexString 16进制表示的字符串 * @return byte[] 字节数组 */ public static byte[] hexStringToByteArray(String hexString) { hexString = hexString.replaceAll...

    python字符串str和字节数组相互转化方法

    实例如下: # bytes object b = bexample # str object s = example ...以上这篇python字符串str和字节数组相互转化方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多

    labview字符串创建数组

    与单一的字符串不同,数组允许我们同时处理多个字符串。 2. **创建字符串数组**: - **手工创建**:在LabVIEW的前面板上,可以通过选择“控件”&gt;“数组”&gt;“字符串数组”来添加一个字符串数组控件。然后,你可以...

    C#字节数组转16进制字符串

    C#字节数组转16进制字符串 C#字节数组转16进制字符串 QQ:292258449

    String(含Hex)与Byte数组互相转换[代码]

    在Java或类似的编程语言中,我们经常会遇到需要将字符串(String)与字节数组(Byte[])以及十六进制表示的字符串(Hex)进行相互转换的情况。这些转换在处理网络通信、文件存储、加密解密等领域尤为关键。下面我们...

    labview字符串拆分到数组 支持中文1

    除了基础的“字符串到数组”函数,LabVIEW还提供了其他字符串处理函数,如“查找子字符串”、“替换子字符串”等,可以帮助我们更灵活地处理字符串。学习这些函数的组合使用,能提高在LabVIEW中处理字符串的效率和...

    UTF8,ANSI,UTF7,UNICODE,UTF32等字符集字符串与字节数组互转工具

    本文将深入探讨UTF8、ANSI、UTF7、UNICODE和UTF32这五种字符编码格式,并介绍如何在它们之间进行转换以及字节数组与字符串之间的互换。 1. UTF8(Unicode Transformation Format - 8 bit): UTF8是最常见的...

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

    在描述中提到的博文链接虽然无法直接访问,但根据标题,我们可以推测博主可能分享了一种将十六进制字符串转换为字节数组的方法。通常,这种转换过程包括以下步骤: 1. **预处理**:检查输入的十六进制字符串是否...

    遍历字符串-返回数组

    ### 遍历字符串与返回数组的基本概念 #### 1. 字符串简介 字符串是一种基本的数据类型,在大多数编程语言中都存在。它由一系列字符组成,通常用于存储和处理文本信息。例如,“Hello, world!”就是一个字符串。在...

    matlab数组字符串

    matlab数组字符串 matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab数组字符串matlab...

    基64字节数组转基64字符串

    在标题和描述中提到的"基64字节数组转基64字符串"就是指将存储图像等二进制数据的字节数组转换为可读的Base64字符串,这个过程对于前端和后端之间的数据交互至关重要。 `base64BinArrayToStr`函数就是实现这一转换...

    C#16进制与字符串、字节数组之间的转换[归类].pdf

    C#十六进制与字符串、字节数组之间的转换 在计算机编程中,十六进制、字符串和字节数组之间的转换是非常重要的。C#语言提供了多种方式来实现这些转换。 一、十进制与二进制、八进制、十六进制之间的转换 在C#中,...

    C语言 获取字符串中的数组

    C语言 获取字符串中的数组C语言 获取字符串中的数组C语言 获取字符串中的数组C语言 获取字符串中的数组

Global site tag (gtag.js) - Google Analytics