PHP如何调用另一个页面并将输出作为变量?

时间:2011-09-19 19:26:47

标签: php

我想从PHP页面调用PHP页面,并返回我称为单个变量的页面的输出。

require不适合我的目的,因为我需要将输出存储为变量供以后使用,而不是立即输出。

IE:

page1.php
<?php

echo 'Hello World!<br>';
$output = call_page('page2.php');
echo 'Go for it!<br>';
echo $output;

?>

page2.php
<?php

echo "Is this real life?<br>";

?>

输出:

Hello World!
Go for it!
Is this real life?

6 个答案:

答案 0 :(得分:20)

要在使用file_get_contents()时澄清一些混淆,请注意:

  1. 使用完整网址会显示页面的 html输出

    $contents = file_get_contents('http://www.example-domain.com/example.php');
    
  2. 使用文件路径时,会获得该页面的源代码

    $contents = file_get_contents('./example.php');
    

答案 1 :(得分:8)

您可以使用file_get_contents方法,这会返回一个字符串,其中包含您请求的页面内容 - http://php.net/manual/en/function.file-get-contents.php

$contents = file_get_contents('http://www.stackoverflow.com/');
echo $contents;

答案 2 :(得分:6)

require实际上正是你想要的(与输出缓冲相结合):

ob_start();
require 'page2.php';
$output = ob_get_clean();

答案 3 :(得分:5)

ob_start();
include('otherpage.php');
$output = ob_get_clean();

更好的方法是将其他页面中正在进行的任何操作封装为函数,然后可以从两个页面调用。这使您可以重用代码,而不必混淆输出缓冲和诸如此类的东西。

答案 4 :(得分:0)

就我而言,所发布的解决方案都没有为我工作。只有Ondřej Mirtes的评论有效。我想执行一个脚本,传递一些参数:

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);

答案 5 :(得分:-1)

我想从现有的.php文件创建pdf 从上面的答案我有3个选项:
1.rewrite .php文件
2.使用缓冲:

$_GET["id"]="4";
ob_start();
include 'test.php';
$TextPDF = ob_get_clean();

3.通过网址获取数据:

$serv = "http".( ($_SERVER["HTTPS"] == "on")?'s':'' )."://".$_SERVER["SERVER_NAME"];
$TextPDF = file_get_contents($serv.'/test.php?id=4');

我想我会使用第三个选项,然后我不必修改现有文件。