0

我已经编写了一个小的 php 脚本来为我处理解压缩。我可以从任何其他脚本中调用它,在我的情况下,我可以从我拥有的 perl 脚本中调用它,并且只需传递相关的文件名和目标目录。我的问题是我想取回文件名以确认成功,但我无法让 php 打印出纯文本。它总是打印回标题。我可以让php在没有标题的情况下打印吗?尝试了 header_remove 但它不起作用。

    <?php
    header_remove();
    if (!headers_sent()) {   foreach (headers_list() as $header)     header_remove        ($header); } 
    require("dUnzip2.inc.php");
    $Path = $_GET["path"];
    $save_to = $_GET["save_to"];
    $filename = $_GET["filename"];
    $zip_file = "$Path/$filename";
    $zip = new dUnzip2("$zip_file");
    $zip->debug = 0;
    $zip->unzipAll("$save_to");
    unlink("$Path/$filename");
    echo "$filename was uploaded and unpacked.";
    ?>

我从脚本中得到的响应是:

HTTP/1.1 200 OK
Connection: close
Date: Thu, 19 Jul 2012 20:40:04 GMT
Server: Nginx / Varnish
Content-Length: 38
Content-Type: text/html
Client-Date: Thu, 19 Jul 2012 20:40:04 GMT
Client-Peer: 66.86.255.11:80
Client-Response-Num:

Foo.zip was uploaded and unpacked. 

我希望它只是:

Foo.zip was uploaded and unpacked. 

编辑:解决了我让它工作,我正在使用

    my $response = $ua->request($req)->as_string;

当我应该使用

    my $response = $ua->request($req)->content;

在我的 PERL 脚本中,谢谢,我正在查看所有内容,但需要查看的地方。

4

2 回答 2

1

这些标头来自您的服务器,例如 HTTP 版本和状态代码是 HTTP 规范的一部分。在客户端,您可以通过阅读到第一个空行来跳过标题。

于 2012-07-19T20:50:41.763 回答
0

做一个if,比如:

if ( strpos( 'Foo.zip was uploaded', $return) !== false ) {
    echo 'Foo.zip was uploaded and unpacked';
}
于 2012-07-19T20:46:54.367 回答