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

Php 如何在不引起无限循环的情况下将页面内容加载到自身中?,php,logic,infinite-loop,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_f

我正在尝试了解如何运行以下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'];
}

为什么不使用jquery和.load()?或者使用一个只触发一次的函数?

我不知道您为什么要这样做,但是您能传递一个变量告诉它停止吗

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

这绝对不会导致无限循环

你的问题可以用这个虚构的例子来解释:

function hi() {
   echo '<div>';
   hi();
   echo '</div>';
}
函数hi(){
回声';
嗨();
回声';
}

所以答案很可能是:你不想要这个!你可能试图做其他事情,但解释得不好。所以,从陈述你真正想要实现的目标开始。

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


我猜您想要的是当前页面的一个稍微不同的版本(即不再加载自身的版本)。如何做到这一点,请参阅newtron的答案。

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


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

我正试图弄清楚您为什么要这样做……您实际上是在执行
10 GOTO 10
。如果您包括您正在尝试执行的操作,可能会有所帮助。正如问题所写,没有无限循环,你无法做你想做的事。为什么要投否决票?这是一个解决方案,答案是:当他以这种方式使用phpBut时,他总是有无限循环,但谁说他在使用jQuery?甚至Javascript?甚至HTML?甚至是任何类型的输出层。(虽然不是我投了反对票!)但他可以用这个来代替这个解决方案,如果他使用HTML、Javascript和jQuery,会产生无限循环。。。。他可以。也许那正是他想要的。也许不是。谁知道!?我想我现在也在问同样的问题,但用的是你提到的语言。请告知。
$url=curPageURL()?停止=1'可能有错误:在
curPageURL()
中可能已经有GET参数:
oele.com/some/page?index=4+?stop=1
不会填充
$\u请求['stop']