如何在不引起无限循环的情况下将页面内容加载到自身中?

时间:2011-05-16 16:04:08

标签: php logic infinite-loop

我正在尝试如何运行以下php:

$html = file_get_contents(curPageURL()); //where curPageURL() returns the current page URL

不会造成无限循环

修改

我需要将整个渲染页面的内容放在变量中。

我试过了:

if(!isset($_COOKIE['page_fetch'])){
    $html = file_get_contents(curPageURL());
    setcookie('page_fetch',$html, time()+20,'/');
} else {
    $html = $_COOKIE['page_fetch'];
}

5 个答案:

答案 0 :(得分:3)

我不确定为什么你想要,但是你能传递一个变量告诉它停止吗?

if (!$_REQUEST['stop']) {
    $url = curPageURL() . '?stop=1';
    $html = file_get_contents($url);
}

答案 1 :(得分:0)

这不会导致无限循环。

这个虚构的例子可以解释你的要求:

function hi() {
   echo '<div>';
   hi();
   echo '</div>';
}

所以答案可能是:你不想要这个!你可能会尝试做别的事,但不能很好地解释。首先说明你实际想要实现的目标。

答案 2 :(得分:0)

你做不到。根据定义,它是无限递归的。

我想你想要的是当前页面的略有不同的版本(即不再加载自身的版本)。请参阅newtron的答案,了解如何做到这一点。

答案 3 :(得分:0)

我不知道cookie的问题是什么,可能是内容从客户端发送到服务器时的最大大小或超时。

但是,由于您需要服务器端的值,为什么不将会话变量与时间值结合使用,以便知道它是否已过期?

答案 4 :(得分:-1)

为什么不使用jquery和.load()?或使用仅触发一次的功能?