手机
当前位置:查字典教程网 >编程开发 >php教程 >PHP 清空varnish 缓存的详解(包括指定站点下的)
PHP 清空varnish 缓存的详解(包括指定站点下的)
摘要:没法清空文件夹内容只能清空指定链接缓存复制代码代码如下:需要注意的是:传入进来的url是不能带参数的如:www.baidu.com/?tn=...

没法清空文件夹内容 只能清空指定链接缓存

复制代码 代码如下:

<?php

function clearVarnish($ip,$url,$host=null){

$errstr = '';

$errno = '';

$varnist_arr = isset($host) ? $host : C('VARNISH_LIST');

foreach ($varnist_arr as $v){

$fp = fsockopen ($ip, 2000, $errno, $errstr, 2);

if (!$fp) {

return false;

} else {

$out = "purge.url $url rn";

fputs ($fp, $out);

$out = fgets($fp , 4096);

fclose ($fp);

return $out;

}

}

}

?>

需要注意的是:传入进来的 url是不能带参数的 如:www.baidu.com/?tn=sougou

因为 purge.url 后清空的是 正则表达式 可以改成 www.baidu.com/(.?)sougou 这样就可以了。

当一台varnish 缓存多个站点内容需要清除指定站点URL 或者单纯清除 站点首页时 需使用purge 而不是purge.url

复制代码 代码如下:

function varnish_purge($ip, $host='', $url) {

$errstr = '';

$errno = '';

$fp = fsockopen ($ip, 2000, $errno, $errstr, 2);

if (!$fp) {

return $errno;

}else {

if(!empty($host)){

$out = "purge req.http.host == {$host} && req.url ~ ^/$ rn";

}else{

$out = " purge.url {$url} rn";

}

fputs ($fp, $out);

$out = fgets($fp , 4096);

fclose ($fp);

return $out;

}

}

【PHP 清空varnish 缓存的详解(包括指定站点下的)】相关文章:

最小化数据传输——在客户端存储数据

网站加速 PHP 缓冲的免费实现方法

真正面向对象编程:PHP5.01发布

PHP下MAIL的另一解决方案

php开发中的页面跳转方法总结

PHP SOCKET编程详解

PHP 判断数组是否为空的5大方法

关于PHP中的Class的几点个人看法

PHP实现将textarea的值根据回车换行拆分至数组

十天学会php之第七天

精品推荐
分类导航