问题列表 - 第7622页

如何确定gzip压缩文件的内容长度?

现在我正试图从服务器上提供CSS和JS文件,这些服务器不允许我启用mod_gzipmod_deflate.所以我写了一个小的PHP脚本来压缩GZIP并返回给用户.

示例代码:

$filename = "style.css";

if (!file_exists($filename) || !($info = stat($filename))) {
  header("HTTP/1.1 404 Not Found");
  die();
}

header("Date: ".gmdate("D, j M Y H:i:s e", time()));
header("Cache-Control: max-age=2592000");
header("Last-Modified: ".gmdate("D, j M Y H:i:s e", $info['mtime']));
header("Etag: ".sprintf("\"%x-%x-%x\"", $info['ino'], $info['size'], $info['mtime']));
header("Accept-Ranges: bytes");
header("Cache-Control: Expires ".gmdate("D, j M Y H:i:s e", $info['mtime']+2592000));
header("Content-Type: text/html");

ob_start("ob_gzhandler");
echo file_get_contents($filename);
ob_end_flush();
Run Code Online (Sandbox Code Playgroud)

我现在有两个问题.首先,我无法确定压缩文件的结果大小,以通知浏览器内容长度.通常,我会包括这一行:

header("Content-Length: ".$info["size"]);
Run Code Online (Sandbox Code Playgroud)

但是,如果我这样做,浏览器会在尝试等待更多数据时挂起.有没有办法计算总大小?或者我应该忽略这个头指令.

另一个问题是,每当我在Firefox中查看此PHP文件时,它都会尝试让我下载结果.在Chrome中,它只是像我期望的那样显示它.有什么建议?

编辑:感谢SoapBox,我用这个替换了代码的结尾:

header("Content-Encoding: gzip");
$compressed = gzencode(file_get_contents($filename), 5);
header("Content-Length: ".strlen($compressed));
die($compressed);
Run Code Online (Sandbox Code Playgroud)

这适用于内容长度!但我仍然让Firefox下载文件而不是显示它.:(

再次编辑: …

php gzip header http-headers

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

没有Comet的反向Ajax?

是否可以让Web服务器在没有Comet的情况下向Web浏览器发送消息?

像Facebook和谷歌这样的每个主要网络公司都使用Comet来实现这个目的,如果为主流浏览器启用了tcp连接,它就像是一个丑陋的黑客等待消失.

ajax tcp comet

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

Python,SimPy:如何从三角概率分布中生成值?

我想运行一个模拟,该模拟使用具有下限A,模式B和上限C的三角概率分布生成的值作为参数.如何在Python中生成此值?有没有像expovariate(lambda)(来自随机)这样简单的东西,或者我必须编写这个东西吗?

python distribution probability simpy

7
推荐指数
2
解决办法
3816
查看次数

如何在搜索结果中创建特殊链接?

如何创建在搜索结果中的网站下显示的特殊链接?假设我在Google上搜索Stack Overflow,我得到的结果接近于此: 替代文字

我询问的链接在上图中以红色标出.您在页面中放置了哪些内容以使其显示在搜索结果中,或者如何创建它们?

谢谢,

布雷特

html seo

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

如何在使用each_char时跟踪迭代次数?

我正在学习Ruby,并考虑制作二进制 - >十进制转换器.它获取二进制字符串并转换为十进制等效值.有没有办法跟踪ruby中的当前迭代步骤,以便可以删除变量'x'?

def convert(binary_string)
    decimal_equivalent = 0
    x=0   
    binary_string.reverse.each_char do |binary|
      decimal_equivalent += binary.to_i * (2 ** x)
    x+=1
    end

   return decimal_equivalent
end
Run Code Online (Sandbox Code Playgroud)

ruby iteration binary decimal

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

Visual Studio - 使用"从现有源向导创建项目"时的新过滤器而不是新文件夹

我使用Visual Studio 2008的"从现有代码创建项目向导",但显然以这种方式创建的项目不允许您创建虚拟解决方案文件夹,而只允许您创建实际的系统文件夹.我想有头文件,资源文件和源文件的标准项目设置,但我似乎无法创建所需的虚拟文件.有没有办法改变项目,以便它允许创建虚拟文件夹?

c++ visual-studio-2008 visual-studio

12
推荐指数
1
解决办法
2万
查看次数

LLVM与C--; 从根本上说,LLVM对Haskell来说不比C--好吗?

我一直很高兴LLVM足够低,无法对任何系统进行建模,并认为苹果正在采用它; 但苹果并没有特别支持Haskell ;

而且,有些人认为Haskell会更好用C--:

那些LLVM的人没有解决零开销垃圾收集的问题并不太令人惊讶.在保持数据模型不可知的同时解决这个问题是计算机科学中一个悬而未决的问题.

- LHC不会使用LLVM.

haskell llvm clang ghc c-minus-minus

26
推荐指数
3
解决办法
7901
查看次数

在C++中从字符串中删除非整数

在我的一本书中有一篇关于人们将逗号输入整数并弄乱你的程序的评论,但它没有详细说明.这让我思考,所以我尝试编写一个小算法来获取std :: string并删除所有非整数字符.此代码编译但跳过输出.为什么没有任何内容被分配给newstring?if(isdigit(fstring [i]))是否评估为指向持有数字的地址为真?

//little algorithm to take the non-integers out of a string
//no idea on efficiency

#include <iostream>
#include <string>

int main()
{
    std::cout << "Enter a number with non-integer characters: ";

    std::string fstring; 
    getline(std::cin, fstring);

    std::string newstring;

    int i = 0, x = 0;

    while (i != fstring.length())
    {
        if (isdigit(fstring[i]))
        {
            newstring[x] = fstring[i];
            i++;
            x++;
        }
        else
        {
           i++;
        }
    }

    std::cout << std::endl;
    std::cout << newstring;
    system("PAUSE");
}
Run Code Online (Sandbox Code Playgroud)

次要问题,可能属于其他地方:如何将字符串转换为int(或浮点数)?

c++ casting variable-assignment

2
推荐指数
2
解决办法
5876
查看次数

可以在循环中使用while循环吗?

我要做的是以下内容:我有一个值数组,这些值最终将用于生成随机唯一字符串,但稍晚一点.首先,我想循环遍历数组中的所有值(foreach循环),然后我想限制它(while循环)这是一个正确的方法吗?

下面的代码不起作用,任何人都可以看到我做错了什么?

<?php 

    $array = array(
          '1', '2', '3', '4', '5', '6', '7', '8', '9', '0', 
          'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 
          'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 
          'u', 'v', 'w', 'x', 'y', 'z', '!', '£', '$', '%',
          '^', '&', '*', '(', ')', '_', '+', '{', '}'
    );

    $length_of_unique_key = 15;
    $counter = 0;

    foreach($array as $values)
    {
          $counter++;

          while ($counter <= $length_of_unique_key)
          {

          }
    }

?>
Run Code Online (Sandbox Code Playgroud)

php while-loop

0
推荐指数
2
解决办法
2853
查看次数

Java中可能的高级GUI?

也许是一个哲学问题.我最近在GUI中看到了一些有趣的视觉效果,主要是在原生平台API上.我知道"它只是软件"而且很可能,通过足够的工作,可以用像素完成任何事情.问题是(终于!),Java真的是一个用GUI做奇特事情的选择.我想这似乎是一个愚蠢的事情,但我有点像Windows Presentation Foundation的一些工作.对于Java,我没有看到像这样的综合努力.我应该在哪里看?

java user-interface

9
推荐指数
3
解决办法
1万
查看次数