`

C#兼容PHP的GZip算法

    博客分类:
  • PHP
 
阅读更多
// php GZip压缩
gzencode($data);

// php GZip解压缩
gzinflate(substr($data,10,-8));  // 高版本的php已经拥有名为【gzdecode】的api

 

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.IO;
using ICSharpCode.SharpZipLib;
using ICSharpCode.SharpZipLib.GZip;


public class GZipHelper
{

    public static byte[] EncodeRaw(byte[] bytes)
    {
        MemoryStream ms = new MemoryStream();
        GZipOutputStream gz = new GZipOutputStream(ms);
        gz.Write(bytes, 0, bytes.Length);
        gz.Close();
        byte[] ret = ms.ToArray();
        ms.Close();
        return ret;
    }

    public static byte[] DecodeRaw(byte[] bytes)
    {
        MemoryStream des = new MemoryStream();
        MemoryStream ms = new MemoryStream(bytes);
        GZipInputStream gz = new GZipInputStream(ms);
        int count = 0;
        int offset = 0;
        byte[] buf = new byte[1024 * 1024];
        do
        {
            count = gz.Read(buf, 0, buf.Length);
            des.Write(buf, offset, count);
            offset += count;
        } while (count > 0);
        gz.Close();
        byte[] ret = des.ToArray();
        ms.Close();
        return ret;
    }
}

 

 C#压缩算法扩展包:http://icsharpcode.github.io/SharpZipLib/

 注意:

    1. C#端传入的参数为byte[],php端使用$str去承接。

    2. C#端不要使用System.Text.Encoding.Default.GetBytes(bytes)去转字符串,C#端各种byte[]到string之间的转换都会产生和php之间的冲突。

分享到:
评论

相关推荐

    C#实现最短路径算法

    这个小例子展示了如何使用C#编程语言来实现一个最短路径算法。最短路径问题通常涉及到在一个加权图中寻找从一个源节点到其他所有节点的最短路径。这里我们将探讨几种常见的最短路径算法,并且会提及如何用C#来实现...

    c#道格拉斯抽稀算法

    总之,"c#道格拉斯抽稀算法"项目旨在提供一个C#实现的道格拉斯抽稀算法工具,能够读取txt文件中的点数据,对曲线进行简化,并可视化展示简化结果。通过理解和应用这个算法,开发者可以优化图形数据,提高处理效率,...

    c#实现梯度下降算法

    c#实现梯度下降算法逻辑回归c#实现梯度下降算法逻辑回归c#实现梯度下降算法逻辑回归

    C#生成凸壳算法的源码

    本篇文章将深入探讨C#实现的凸壳算法,并结合提供的源码进行分析。 首先,我们要理解什么是凸壳。在一个二维平面上,如果一个点集中的任意三点都不共线,那么这些点构成的多边形被称为凸包。凸包的特点是,任何从...

    C#图谱曲线平滑滤波算法

    C#图谱曲线平滑滤波算法,几个平滑直接用。其实平滑算法是触类旁通的。

    最短路径算法c# 最短路径算法

    C#作为一门面向对象的编程语言,提供了丰富的数据结构和算法库来实现这些算法。 1. Dijkstra算法:Dijkstra算法是最常用的单源最短路径算法,由荷兰计算机科学家艾兹格·迪科斯彻提出。该算法通过维护一个优先队列...

    C# 滤波算法 KalmanFa

    《C#滤波算法:KalmanFa深度解析》 在信息技术领域,数据处理与分析是不可或缺的一环。尤其是在实时系统和传感器数据处理中,滤波算法扮演着至关重要的角色。其中,Kalman滤波器是一种广泛应用的线性递归滤波算法,...

    C#实现排列组合算法完整实例

    排列组合是常见的数学问题,本文就以完整实例形式讲述了C#实现排列组合算法的方法。分享给大家供大家参考之用。具体方法如下: 首先,数学中排列组合,可表示为:排列P(N,R) 其实排列实现了,组合也就实现了,组合...

    C#加密算法汇总 C#加密算法

    C#加密算法汇总 C#加密算法 C#加密算法 C#加密算法

    C#数字图像处理算法典型实例(赵春江)光盘内容

    《C#数字图像处理算法典型实例(赵春江)》是一本深入浅出介绍C#语言在数字图像处理领域的应用的书籍。光盘内容包含了书中的所有实例源代码,为学习者提供了丰富的实践素材,有助于深入理解和掌握图像处理技术。 在...

    C#自编银行家算法

    C#实现银行家算法的知识点摘要 一、银行家算法的基本概念 银行家算法是一种避免死锁的方法,它可以使系统避免死锁的发生。该算法通过对系统中的资源进行分配和管理,以避免系统中出现死锁的情况。 二、C#实现银行...

    利用C#语言开发K-Means聚类算法

    在这个项目中,我们将深入探讨如何利用C#语言来实现K-Means聚类算法。 首先,K-Means算法的基本思想是通过迭代寻找最优的K个聚类中心,使得每个数据点到其所属簇中心的距离最小。这个过程包括两个主要步骤:初始化...

    SVM算法C#编写代码

    使用C#编写的SVM算法,低维数据规模,训练效果极佳,可供C++/C编写算法参考。 个人能力有限,如有问题,欢迎指正!

    C# 实现CRC校验算法源码

    C# 是一种面向对象的编程语言,它提供了丰富的功能来实现各种算法,包括CRC校验。 在本项目中,"C# 实现CRC校验算法源码"是一个控制台应用程序,用户可以通过交互式界面输入需要校验的数据,程序会根据预设的CRC...

    c#版的SIFT算法-国外原版

    C#版本的SIFT算法则是将这一算法移植到C#编程语言中,以满足.NET开发者的需求。 在C#中实现SIFT算法通常包括以下几个步骤: 1. **尺度空间极值检测**:SIFT算法首先通过高斯差分金字塔来寻找图像中的尺度不变极值...

    C#数字图像处理算法典型实例.iso

    C#数字图像处理算法典型实例.iso C#数字图像处理算法典型实例.iso C#数字图像处理算法典型实例.iso

    C#编写的遗传算法

    《C#实现遗传算法在VRP与TSP问题中的应用》 遗传算法(Genetic Algorithm,GA)是一种受到生物进化原理启发的优化方法,广泛应用于解决复杂问题,如旅行商问题(Traveling Salesman Problem, TSP)和车辆路径规划...

    基于C#运用遗传算法的排课系统

    排课问题是典型的组合优化和不确定性...针对这种情况,给出了排课问题的数学模型,提出了基于C#运用遗传算法解决方案。结果表明,该算法能比较有效的解决排课问题。该方法易于学习和应用,且不必依赖特殊的实现模式。

    轨迹数据压缩算法_轨迹_轨迹数据压缩算法_C#源码_dp算法_源码

    C#源码表示这种算法的实现是使用C#编程语言编写的,这为开发者提供了一种直接理解并应用算法的途径。 "DP算法"全称为动态规划(Dynamic Programming),通常用于解决最优化问题。在轨迹压缩的上下文中,DP算法可能...

Global site tag (gtag.js) - Google Analytics