有时候有个页面需要经常执行,比如备份或者更新缓存之类的操作,如果直接把代码写到主页,这样虽然每次访问就会执行,但是如果这个操作需要很长的时间的话,那么就会让页面打开非常慢,这种情况显然是不希望碰到的.
那么有没有办法打开页面就调用另一个页面,但是不需要等他返回信息呢?
也就是相当与我去敲别人门(调用页面),正常的流程我会等一会直到有人开门(返回结果)或者没人开门(超时).
然而现在我要敲完门就不管了直接走人……至于有没有人开门我不需要关心.^-^!!
问了一些人,也查了一些资料,得到了一个方法,使用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信息!