PHP后台调用其他页面

有时候有个页面需要经常执行,比如备份或者更新缓存之类的操作,如果直接把代码写到主页,这样虽然每次访问就会执行,但是如果这个操作需要很长的时间的话,那么就会让页面打开非常慢,这种情况显然是不希望碰到的.

那么有没有办法打开页面就调用另一个页面,但是不需要等他返回信息呢?

也就是相当与我去敲别人门(调用页面),正常的流程我会等一会直到有人开门(返回结果)或者没人开门(超时).

然而现在我要敲完门就不管了直接走人……至于有没有人开门我不需要关心.^-^!!

问了一些人,也查了一些资料,得到了一个方法,使用fsockopen,向指定页面发送GET请求,然后不需要去读取返回内容!

//PHP CODE:
$fp = fsockopen($_SERVER["HTTP_HOST"], 80, $errno, $errmsg);
if(!$fp) {
    echo "$errstr ($errno)<br>rn";
} else {
    fputs($fp,"GET /index.php HTTP/1.0rnHost: $hostrnrn");
    fclose($fp);
}

加上一点简单的说明:
fsockopen 打开一个连接,主机$_SERVER[“HTTP_HOST”],即执行代码的服务器地址,端口 80,后面两个是错误信息.

如果连接成功,就向该主机的写入GET /index.php HTTP/1.0rnHost: $hostrnrn,这实际就是请求index.php页面,

然后关闭连接.

如果在fputs后面加fread,就可以看到返回的信息,即正常访问index.php看到的页面内容还有header信息!

发布者

下弦 古月

有时候我们以为爱可以改变一切,但有些东西是无法改变的,就像那些溶入了生命的颜色。

发表回复