【问题标题】:how to get the output of one php page in a string variable of on other php page如何在另一个php页面上的字符串变量中获取一个php页面的输出
【发布时间】:2011-11-10 21:02:57
【问题描述】:

我很想知道如何做到这一点。

其实我有两个 php 页面。 说 page1.phppage2.php

现在说在 page1.php 我们有类似的东西

<?php
  $id=$_GET['id'];
  // do some processing with mysql database
  // do some more processing
  $name="Kumar Ravi"; // this is the name generated using ID received.
  echo $name;
?>

page2.php 中,我们有

<?php
  $var=get_the_output('page1.php?id=24');
  echo $var;
?>

如何做这样的事情,我的意思是我想让另一个 PHP 回显所有数据(只能使用 GET 请求调用)到一个另一个 PHP 页面上的字符串。

我尝试了很多事情,但都失败了。 我尝试过的事情是:

  1. file_get_contents ---> 失败,因为它无法维持 page2.phppage1.php
  2. require ---> 因为我不知道如何传递参数并使用它来维护会话。试图到处搜索,但是.. :(

请帮忙。

【问题讨论】:

  • 好吧,如果你愿意,你可以用 javascript 来做,然后从 page1 到 page2 进行 Ajax 调用,或者反过来
  • 选项 1 应该可以工作。为什么你不能维持会话?您是否使用 cookie 来处理会话 ID 或查询字符串?
  • @MikeB 我使用的是 $_SESSION 而不是 cookie。我实际上是一个新手。你能举个例子吗?

标签: php session get


【解决方案1】:

如果加载 page1.php 和 page2.php 时存在相同的会话,您应该能够手动设置超全局变量,然后如果您需要捕获包含页面的输出,您可以使用输出缓冲来实现:

$_GET['id'] = '24';
ob_start();
require("page1.php");
$out = ob_get_clean(); //$out = "Kumar Ravi";

【讨论】:

  • @Daveo 我需要知道为什么它闻起来?当我使用它时我会遇到什么问题? Daveo 可能你能对此有所了解吗?
【解决方案2】:

您可以执行以下操作,但要小心:

<?php
$_GET['id'] = 24; // set the id in $_GET so page2 can find it
ob_start();
include('page1.php');
$var = ob_get_clean();
?>

【讨论】:

  • 非常感谢您的解决方案,但我可以知道您所说的要小心是什么意思吗?使用这种方法时是否存在任何安全或其他问题?
  • 没有安全问题。只是意味着要小心传递这样的参数。特别是如果您已注册全局变量。
猜你喜欢
  • 2018-10-27
  • 2014-12-20
  • 2013-02-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多