标签: compression

如何在php中压缩html输出?

可能的重复:
如何缩小 php 页面 html 输出?

我的意思是去除 html 中的所有换行符和空格并将其放在一行上。

我试过这个功能

public static function htmlCompress($html)
{
    preg_match_all('!(<(?:code|pre|script).*>[^<]+</(?:code|pre|script)>)!',$html,$pre);
    $html = preg_replace('!<(?:code|pre).*>[^<]+</(?:code|pre)>!', '#pre#', $html);
    $html = preg_replace('#<!–[^\[].+–>#', '', $html);
    $html = preg_replace('/[\r\n\t]+/', ' ', $html);
    $html = preg_replace('/>[\s]+</', '><', $html);
    $html = preg_replace('/[\s]+/', ' ', $html);
    if (!empty($pre[0])) {
        foreach ($pre[0] as $tag) {
            $html = preg_replace('!#pre#!', $tag, $html,1);
        }
    }
    return $html;
}
Run Code Online (Sandbox Code Playgroud)

但有时会出现像“?”这样的符号 因为这个字符串

$html = preg_replace('/[\s]+/', ' ', $html);
Run Code Online (Sandbox Code Playgroud)

为什么会出现这个符号以及如何压缩html?

html php compression

1
推荐指数
1
解决办法
7322
查看次数

如何在 C# 中压缩和解压缩 .bz2 文件?

我想通过代码将 .bz2 文件解压缩为 .mdb 扩展名,反之亦然。有人可以通过代码分享如何做到这一点吗?

.net c# compression

1
推荐指数
1
解决办法
3645
查看次数

使用 TZCompressionStream 截断数据

我有以下声明:

stmCompressor: TZCompressionStream;
stmCompressed: TMemoryStream;
stmBlob: TStream;
Run Code Online (Sandbox Code Playgroud)

我有以下代码:

stmBlob := qry.CreateBlobStream(qry.FieldByName(sFieldName), bmRead);
stmCompressed := TMemoryStream.Create;
stmCompressor := TZCompressionStream.Create(stmCompressed); 
stmBlob.Position := 0;
stmCompressor.CopyFrom(stmBlob, stmBlob.Size);
stmCompressed.Position := 0;
stmCompressed.SaveToFile('C:\Temp\CompressedData2.zip');
Run Code Online (Sandbox Code Playgroud)

我正在尝试从数据库中压缩图像数据并将结果放在内存流 stmCompressed 中。然后我将 stmCompressed 保存到一个文件中,以便我可以检查结果。结果似乎是它应该是什么的截断形式。如果压缩数据大于 80000H,则文件将被截断到此大小。如果数据大于 B0000H,则文件将被截断为该大小。

有趣的是,如果我将 stmCompressed 从 TMemoryStream 更改为 TFileStream 然后它可以完美运行(代码不完全相同 - 如果有帮助,我可以发布它)。

我需要结果在内存流中,所以我很感激任何人可以提供的任何帮助。我正在使用 XE2 附带的标准 ZLib 库。

谢谢。

compression delphi

1
推荐指数
1
解决办法
1727
查看次数

RAR 存档和 Gzip 中的巨大压缩差异:有什么我遗漏的吗?

我有一个大约500MB的巨大文本文件。我尝试从 python 程序和命令行使用Gzip对其进行存档。但是,在这两种情况下,存档文件的大小约为240MB,而在 Windows 中使用WinRAR存档时,存档文件的大小约为450KB。有什么我在这里想念的吗?为什么会有如此大的差异,我该怎么做才能达到类似的压缩水平?

我也用 Python 标记了它,因为任何与此相关的 Python 代码都会非常有帮助。

这是文件的前 3 行:

$ head 100.txt -n 3
31731610:22783120;
22783120:
45476057:39683372;5879272;54702019;58780534;30705698;60087296;98422023;55173626;5607459;843581;11846946;97676518;46819398;60044103;48496022;35228829;6594795;43867901;66416757;81235384;42557439;40435884;60586505;65993069;76377254;82877796;94397118;39141041;2725176;56097923;4290013;26546278;18501064;27470542;60289066;43986553;67745714;16358528;63833235;92738288;77291467;54053846;93392935;10376621;15432256;96550938;25648200;10411060;3053129;54530514;97316324;
Run Code Online (Sandbox Code Playgroud)

python compression gzip archive winrar

1
推荐指数
1
解决办法
4112
查看次数

如何在不提取的情况下检查存档文件的实际大小?

我有一个存档 foo.tar.gz(实际大小为 8M),其中包含一个大型稀疏文件(大约 10G)。

我的问题是,如何在不提取存档的情况下知道实际的稀疏文件大小?

linux compression extract archive sparse-matrix

1
推荐指数
1
解决办法
3452
查看次数

ZipArchive 无法使用 MemoryStream 正确压缩文件

我正在使用 .NET 4.5 中的 ZipArchive,它可以正常使用FileStream

public static byte[] CompressWithFiles(string dir)
{
    var archiveName = Path.Combine(Path.GetTempPath(), Guid.NewGuid().ToString() + ".zip");    
    var files = Directory.GetFiles(testsConsoleDir);
    using (var stream = new FileStream(archiveName, FileMode.Create))
    {
        using (var archive = new ZipArchive(stream, ZipArchiveMode.Create))
        {
            foreach (var file in files)
                archive.CreateEntryFromFile(file, Path.GetFileName(file), CompressionLevel.Optimal);
        }
    }
    byte[] result = File.ReadAllBytes(archiveName);

    return result;
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我试图用MemoryStream它压缩文件,它会返回无法打开的字节数组,并保存到磁盘:

public static byte[] CompressInMemory(string dir)
{
    var files = Directory.GetFiles(dir);
    byte[] result = null;
    using (var stream = new MemoryStream()) …
Run Code Online (Sandbox Code Playgroud)

.net compression zip

1
推荐指数
1
解决办法
1099
查看次数

使用 lz4 命令行将文件夹压缩为单个文件

我需要将目录的所有内容压缩到一个lz4档案中,我想不出办法来做到这一点。我已经阅读了所有可用的参数,仍然没有成功。请建议我如何实现这一目标。

compression lz4

1
推荐指数
1
解决办法
2879
查看次数

FFMPEG 的 FLAC 压缩级别和默认设置

我已经搜索了这方面的文档,但没有找到任何信息。

我在 Windows 10 Insider Build(也是最新的)64 位中使用最新的 FFMPEG 每晚构建。

我需要知道如何定义 FLAC 文件的压缩级别。

此外,默认情况下 FFMPEG 会更改 FLAC 文件中的任何内容。这是一个示例:假设我有一个未更改的源 FLAC 文件,我在 FFMPEG 中再次将其转换为 FLAC,默认情况下,在处理它时会发生什么变化?有什么方法可以确保 FFMPEG 不会改变原始质量?我知道 FLAC 是无损的,但我认为它可能会改变比特深度或比特率。

compression ffmpeg lossless flac

1
推荐指数
1
解决办法
7576
查看次数

如何插入带有镶木地板文件格式和 SNAPPY 压缩的配置单元表?

蜂巢 2.1

我有以下表格定义:

CREATE EXTERNAL TABLE table_snappy (
a STRING,
b INT) 
PARTITIONED BY (c STRING)
ROW FORMAT SERDE
  'org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe'
STORED AS INPUTFORMAT
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetInputFormat'
OUTPUTFORMAT
  'org.apache.hadoop.hive.ql.io.parquet.MapredParquetOutputFormat'
LOCATION '/'
TBLPROPERTIES ('parquet.compress'='SNAPPY');
Run Code Online (Sandbox Code Playgroud)

现在,我想向其中插入数据:

INSERT INTO table_snappy PARTITION (c='something') VALUES ('xyz', 1);
Run Code Online (Sandbox Code Playgroud)

但是,当我查看数据文件时,我看到的只是没有任何压缩的普通镶木地板文件。在这种情况下如何启用快速压缩?

目标:以镶木地板格式和 SNAPPY 压缩配置单元表数据。

我也尝试过设置多个属性:

SET parquet.compression=SNAPPY;
SET hive.exec.compress.output=true;
SET mapred.output.compression.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET mapred.output.compression.type=BLOCK;
SET mapreduce.output.fileoutputformat.compress=true;
SET mapreduce.output.fileoutputformat.compress.codec=org.apache.hadoop.io.compress.SnappyCodec;
SET PARQUET_COMPRESSION_CODEC=snappy;
Run Code Online (Sandbox Code Playgroud)

TBLPROPERTIES ('parquet.compression'='SNAPPY');
Run Code Online (Sandbox Code Playgroud)

但没有任何帮助。我对 GZIP 压缩进行了同样的尝试,但似乎效果不佳。我开始思考这是否可能。任何帮助表示赞赏。

compression hadoop hive snappy parquet

1
推荐指数
1
解决办法
3357
查看次数

LZ4、Snappy、Zstandard 和 Deflate 等压缩算法的时间和空间复杂度

我正在寻找上述算法的时间和空间复杂度,但我在谷歌上找不到,我已经浪费了两天多没有任何结果。如果你们能帮助我,我将非常感激。

compression algorithm time-complexity space-complexity

1
推荐指数
1
解决办法
232
查看次数