PHP fgets()不适用于php文件

时间:2016-09-15 17:29:00

标签: php httprequest fgets fsockopen

我使用的是Nginx 1.7.3和PHP 7.0。

我创建了一个像这样的test.php文件

<?php

$header = '';
$header .= "GET /test2.php HTTP/1.1\r\n";
$header .= "Host:127.0.0.1\r\n";
$header .= "Connection: close";

$data = $header . "\r\n\r\n";

if ($fp = fsockopen('127.0.0.1', 80))
{
    fwrite($fp, $data);
    $res = '';

    while (!feof($fp))
    {
        $res .= fgets($fp, 1024);
    }
    fclose($fp);
}

echo $res;

?>

我创建了一个像这样的test2.php文件

<?php

echo 1;

?>

然后我通过访问127.0.0.1/test.php来执行test.php文件,但它没有工作。它一直在加载,并没有显示任何文字。

所以我测试了那样

while (!feof($fp))
{
        echo 1;
        exit;
        $res .= fgets($fp, 1024);
}

我原谅了它,并打印了#1;&#39;。 (我认为fgets()不起作用。)

但是我为它准备了一个文本文件,如下所示。

$header = '';
$header .= "GET **/text.txt** HTTP/1.1\r\n";
$header .= "Host:127.0.0.1\r\n";
$header .= "Connection: close";

效果很好。我不知道自己该做什么。如何在localhost上为PHP文件使用fsockopen()。我用Google搜索了很多内容,但遗憾的是它并没有太大帮助。如果你知道这件事,请告诉我该怎么做。

0 个答案:

没有答案