我正在尝试如何运行以下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'];
}
答案 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()?或使用仅触发一次的功能?