在同一台服务器上获取生成的php脚本html内容

时间:2017-04-25 08:46:38

标签: php

我有一个php页面,它根据解析的查询字符串将html输出到浏览器。我遇到的问题是我需要通过php动态检索这个html源代码。

以下代码无效,因为它尝试解析同一服务器上的绝对路径:

$url = 'http://example.com/myScript.php';
$html = file_get_contents($url);

如果我手动设置绝对路径,它只会将php内容作为文本返回(不像浏览器那样执行):

$url = '/dir1/dir2/dir3/dir4/myScript.php';
$html = file_get_contents($url);

然后我研究了它,发现使用ob_get_contents可以正常工作。下面的代码按预期工作,执行脚本并返回html输出。

$url = '/dir1/dir2/dir3/dir4/myScript.php';
ob_start();
include($url);
$html = ob_get_contents();
ob_end_clean();

上述解决方案的问题是,只要我将查询字符串放在最后,它就会失败。我认为这是因为它将查询字符串视为文件名的一部分。

1 个答案:

答案 0 :(得分:2)

使用PHP ob_get_contents

<?php
    ob_start();

    $original_get = $_GET;
    $_GET = ["query" => "tags", "you" => "need", "in" => "file.php"];
    $file = "file.php";

    include($file);

    $_GET = $original_get;

    $content = ob_get_contents();
    ob_clean();

    echo $content;