草庐IT

php - 如何使用 PHP 提供 gzip 压缩的 xml 文件供下载

我有一个PHP脚本,可以从数据库创建一个xml文件。我想让脚本创建xml数据并立即制作一个可供下载的.gzip文件。你能给我一些想法吗?谢谢! 最佳答案 您可以使用gzencode轻松应用gzip压缩功能。 关于php-如何使用PHP提供gzip压缩的xml文件供下载,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/605335/

php - 使用 cURL 获取压缩内容

我需要获取各种网页的内容。其中一些是使用不同的方法(gzip、deflate等)压缩的。我在Internet上搜索并找到了gzip内容的解决方案:$ch=curl_init("http://games2k.net/");curl_setopt($ch,CURLOPT_ENCODING,"gzip");curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);$output=curl_exec($ch);curl_close($ch);echo$output;但是,这仅适用于单个方法。我需要一个适用于尽可能多的压缩方法(最好是所有压缩方法)或至少适用于最流行的两

PHP:如何检查 gz 文件是否损坏?

有什么方法可以检测PHP中的gz文件是否损坏?我目前正在使用http://www.php.net/manual/de/function.gzread.php#110078确定文件大小并通过读取整个*文件$zd=gzopen($file,"r");$contents=gzread($zd,$fzip_size);gzclose($zd);不幸的是,一些gz文件已损坏,最后4个字节不代表gz文件的真实长度。只要数字是负数,我就能判断出有什么问题,但有时它是正数(而且非常大),这会导致内存不足错误。如何提前检查文件是否损坏?我正在读取整个文件,因为我发现在不知道最长行的大小的情况下无法逐行读

php - 如何使用 PHP Simple HTML DOM Parser 启用 gzip 压缩

我已经尝试了一些方法来使用PHPSimpleHTMLDOMParser启用gzip压缩,但到目前为止似乎没有任何效果。我已经使用ini_set更改了用户代理,所以我认为也可以启用gzip压缩?include("simpdom/simple_html_dom.php");ini_set('zlib.output_compression','On');$url='http://www.whatsmyip.org/http_compression/';$html=file_get_html($url);print$html;上面的网站对其进行了测试。如果我完全以错误的方式进行此操作,请告诉我

php - 如何通过 PHP 传送以前 GZip 压缩的缓存 HTML 文件?

情况我有一个为我的网站开发的缓存,我目前检查每个页面请求以查看是否有页面的静态缓存版本,然后,如果浏览器支持,我gzip页面并将其返回给浏览器。当前代码$hash=md5('http://mydomain.com'.$url);$fl=substr($url,1,1);if(file_exists('/home/myaccount/public_html/cache/'.$fl.'/'.$hash.'.html')&&$_GET['cache']!='off'&&$fl!=''):ob_start("ob_gzhandler");header('Content-type:text/ht

c# - PHP => 膨胀来自 C# SharpZipLib 的 GZipped 字符串?

我有一个C#应用程序,我在其中使用SharpZipLib压缩一个很长的字符串,然后将数据发送到压缩字节[]的Base64字符串中的PHP服务。出于某种原因,当尝试在PHP端对其进行Inflate时,它​​返回错误:“gzinflate:数据错误”。如何在PHP中扩充压缩后的字符串?这是C#代码:byte[]sIn=System.Text.UTF8Encoding.UTF8.GetBytes(data);MemoryStreamrawDataStream=newMemoryStream();GZipOutputStreamgzipOut=newGZipOutputStream(rawDa

php - gzinflate : max. 空间以避免内存不足?

用gzinflate解压时,我发现——在某些情况下情况-以下代码导致内存不足错误。在32位Linux上使用PHP5.3.20进行测试(AmazonLinuxAMI上的EC2)。$memoryLimit=Misc::bytesFromShorthand(ini_get('memory_limit'));//256MB$memoryUsage=memory_get_usage();//2MBinactualtestcase$remaining=$memoryLimit-$memoryUsage;$factor=0.9;$maxUncompressedSize=max(1,floor($fa

php - 缓慢的 HTTP/1.1 响应,file_get_contents 远程服务器

我正在通过HTTP1.0协议(protocol)从远程网站获取文件。我想我会很好,在获取文件时使用gzip以最大限度地减少使用的带宽。无论我如何形成标题,我都没有在响应中获得gzip内容,尽管在使用浏览器进行测试时确实如此。我还使用我的代码从我自己的网站获得gzip格式的服务。我认为这是因为他们的服务器使用的是仅在HTTP1.1中可用的分块传输编码。我将协议(protocol)切换为HTTP1.1。这是我下面的代码。我的网站回答了这个问题,尽管1.0立即执行的操作需要几秒钟的时间。当我在远程网站上尝试时,它一直在加载而没有回答。所以我的问题是,为什么1.1这么慢?我使用的是格式错误的h

php - SOAP SOAP COMPRESSION GZIP 验证是否有效

我使用php5向基于不使用Header元素的wsdl的网络服务发出soap请求。一切,我现在被要求对我的soap请求使用gzip压缩。所以我的客户现在看起来像这样:$client=newSoapClient('xxxxx.wsdl',array('compression'=>SOAP_COMPRESSION_ACCEPT|SOAP_COMPRESSION_GZIP,'trace'=>1,));我用谷歌搜索了一下,发现网站说我还应该在SOAP_COMPRESSION_GZIP之后添加gzip压缩级别(添加|9),但是当我这样做时,我找回SOAP故障"Contentisnotallowed

php - 使用 Apache 和 PHP 分块 gzip 的任何方法

我在网站上有一个Web应用程序需要一段时间(约10秒)才能完成靠近底部的页面部分-它已尽可能优化,缓存不是一个选项。我们通过.htaccess指令在服务器上启用了压缩SetOutputFilterDEFLATE问题是这会导致整个页面在开始输出给用户之前一直等待直到完成,这不是最佳选择,因为在页面完成之前用户什么也看不到。我也通过phpob_start("ob_gzhandler");试过了方法。目前我有一个在我的.htaccess中限制压缩此特定脚本。基本上我的问题是-有没有办法说chunkgzip或deflate以便用户将它分成几部分,这样他们就可以看到页面已经开始加载?