输出中缺少3.3个缺少的字符

时间:2016-04-09 18:32:47

标签: response php-5.5 slim-3

我正试图让Slim在我的Windows 7系统上运行。 到目前为止,我已经使用Composer安装了所有内容,但是当我运行一个非常简单的程序时,输出并不是预期的。

以下是我的代码:

<?php
ini_set('display_errors', 1);
ini_set('display_startup_errors', 1);
error_reporting(E_ALL);

use Slim\App;
use Slim\Http\Request;
use Slim\Http\Response;

require '../vendor/autoload.php';

$app = new App;

$app->get('/', function (Request $in, Response $out, $args) {
 return $out->write("xxxxx");
});

$app->run();

我期待输出“xxxxx”,而不是“x”。

这意味着我在某处丢失了4个字符。 运行PHP 5.5.12 编码为UTF-8(非BOM)

我跑的时候     “curl -v http://localhost:8080/

我得到了

D:\wamp\www\slim_test\src\public>curl -v http://localhost:8080/
*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET / HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.46.0
> Accept: */*
>
< HTTP/1.1 200 OK
< Host: localhost:8080
< Connection: close
< X-Powered-By: PHP/5.5.12
< Content-Type: text/html; charset=UTF-8
< Content-Length: 5
<

x* Closing connection 0

感谢您的帮助。

修改 一旦我将这些代码行附加到文件的末尾,响应就是正确的。

$response = $app->run(true); //Silent mode, wont send the response
$response = $response->withoutHeader("Content-Length"); //Remove the Content-Length

$app->respond($response); //Now we send the response

我无法弄清楚为什么.....?

1 个答案:

答案 0 :(得分:1)

这个问题已经解决,因为我发现了一个非常愚蠢的错误。

我在<?php标记之前有2个空格。