如何PHP调用另一个页面并将输出作为变量?
我想从一个PHP页面调用一个PHP页面,并以单个变量的形式返回我调用的页面的输出如何PHP调用另一个页面并将输出作为变量?,php,Php,我想从一个PHP页面调用一个PHP页面,并以单个变量的形式返回我调用的页面的输出 require不适合我的用途,因为我需要将输出存储为变量以供以后使用,而不是立即输出 即: 更好的方法是将另一个页面中正在执行的任何操作封装为函数,然后可以从两个页面调用该函数。这使您可以重用代码,而无需处理输出缓冲等问题。require实际上正是您想要的(与输出缓冲相结合): 您可以使用file_get_contents方法,该方法返回一个包含您请求的页面内容的字符串- 我想从现有的.php文件创建pdf。 从以
require
不适合我的用途,因为我需要将输出存储为变量以供以后使用,而不是立即输出
即:
更好的方法是将另一个页面中正在执行的任何操作封装为函数,然后可以从两个页面调用该函数。这使您可以重用代码,而无需处理输出缓冲等问题。
require
实际上正是您想要的(与输出缓冲相结合):
您可以使用file_get_contents方法,该方法返回一个包含您请求的页面内容的字符串-
我想从现有的.php文件创建pdf。
从以上答案中,我有3个选项:
1.rewrite.php文件
2.使用缓冲:
ob_start();
require 'page2.php';
$output = ob_get_clean();
$_GET["id"]="4";
ob_start();
include 'test.php';
$TextPDF = ob_get_clean();
3.通过url获取数据:
$serv = "http".( ($_SERVER["HTTPS"] == "on")?'s':'' )."://".$_SERVER["SERVER_NAME"];
$TextPDF = file_get_contents($serv.'/test.php?id=4');
我想我将使用第三个选项,这样我就不必修改现有文件。要消除使用
文件获取内容()时的一些混淆,请注意:
与完整url一起使用将生成页面的html输出:
$contents = file_get_contents('http://www.example-domain.com/example.php');
$contents = file_get_contents('./example.php');
与文件路径一起使用时将获得页面的源代码:
$contents = file_get_contents('http://www.example-domain.com/example.php');
$contents = file_get_contents('./example.php');
就我而言,所有发布的解决方案都不适合我。只有作者的评论有效。我想执行一个脚本,传递一些参数:
anotherscript.php?param=value
因此,解决方案是使用cURL:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http".( ($_SERVER["HTTPS"] == "on")?'s':'' )."://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/anotherscript.php?param=value");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);
我会通过http://和cURL()调用它。让page2.php输出一个var,然后可以使用require\include。这个答案似乎解决了这个问题的一个特定子主题。如果您认为上面的一个答案是正确的,请将其标记为正确答案,而不是将其重新灰化。这是否允许将参数传递给调用的脚本?即要求“page2.php?foo=bar”;不,它不是,但是如果在同一台服务器上运行它,它确实共享全局$\u GET变量,因此您可以操纵它以获得所需的内容。
anotherscript.php?param=value
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, "http".( ($_SERVER["HTTPS"] == "on")?'s':'' )."://".$_SERVER['HTTP_HOST'].dirname($_SERVER['PHP_SELF'])."/anotherscript.php?param=value");
curl_setopt($ch, CURLOPT_HEADER, 0);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$output = curl_exec($ch);
curl_close($ch);