file_get_contents返回所有php代码

时间:2015-10-03 19:38:16

标签: php file-get-contents

我想在加载index.php时向某个文件发送POST请求。我使用这段代码:

$query = http_build_query(array('ajax' => 'gwonline', 'session' => $current_session));
$contextData = array ( 
                'method' => 'POST',
                'header' => "Content-Type: application/x-www-form-urlencoded\r\n".
                            "Connection: close\r\n".
                            "Content-Length: ".strlen($query)."\r\n",
                'content'=> $query );
$context = stream_context_create (array ( 'http' => $contextData ));
$result =  file_get_contents(PATH::Includes . 'ajax.php', false, $context);
$result_decoded = json_decode($result, true);
echo '<div id="gwonline">' . ($result_decoded['isonlinestr'] ?: '<span class="fa fa-circle" style="color:orange"></span> Unavailable') . '</div>';

问题是,$result以获取PHP代码而不是实际打印的文件结束。如何在不将网站更改为http://...的情况下进行修复,因为目前我无法选择该网站。

1 个答案:

答案 0 :(得分:1)

include与输出缓冲一起使用。 file_get_contents正在从文件系统中读取文件,它不会使用PHP来分析它。使用http://时它工作的唯一原因是因为Web服务器正在为文件而不是文件系统提供服务。

ob_start();
include "ajax.php";
$result = ob_get_clean();