我有一个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();
上述解决方案的问题是,只要我将查询字符串放在最后,它就会失败。我认为这是因为它将查询字符串视为文件名的一部分。
答案 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;