可能的重复:
如何缩小 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?
我想通过代码将 .bz2 文件解压缩为 .mdb 扩展名,反之亦然。有人可以通过代码分享如何做到这一点吗?
我有以下声明:
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 库。
谢谢。
我有一个大约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) 我有一个存档 foo.tar.gz(实际大小为 8M),其中包含一个大型稀疏文件(大约 10G)。
我的问题是,如何在不提取存档的情况下知道实际的稀疏文件大小?
我正在使用 .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) 我需要将目录的所有内容压缩到一个lz4档案中,我想不出办法来做到这一点。我已经阅读了所有可用的参数,仍然没有成功。请建议我如何实现这一目标。
我已经搜索了这方面的文档,但没有找到任何信息。
我在 Windows 10 Insider Build(也是最新的)64 位中使用最新的 FFMPEG 每晚构建。
我需要知道如何定义 FLAC 文件的压缩级别。
此外,默认情况下 FFMPEG 会更改 FLAC 文件中的任何内容。这是一个示例:假设我有一个未更改的源 FLAC 文件,我在 FFMPEG 中再次将其转换为 FLAC,默认情况下,在处理它时会发生什么变化?有什么方法可以确保 FFMPEG 不会改变原始质量?我知道 FLAC 是无损的,但我认为它可能会改变比特深度或比特率。
蜂巢 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 压缩进行了同样的尝试,但似乎效果不佳。我开始思考这是否可能。任何帮助表示赞赏。
我正在寻找上述算法的时间和空间复杂度,但我在谷歌上找不到,我已经浪费了两天多没有任何结果。如果你们能帮助我,我将非常感激。