PHP 清空varnish 缓存的详解(包括指定站点下的)


Posted in PHP onJune 20, 2013

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

<?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 \r\n";
            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 ~ ^/$ \r\n";
              }else{
                 $out = " purge.url {$url} \r\n";
              }
              fputs ($fp, $out);
              $out = fgets($fp , 4096);
              fclose ($fp);
              return $out;  
        }
}

PHP 相关文章推荐
让codeigniter与swfupload整合的最佳解决方案
Jun 12 PHP
PHP常用正则表达式集锦
Aug 17 PHP
一个完整的PHP类包含的七种语法说明
Jun 04 PHP
PHP与Ajax相结合实现登录验证小Demo
Mar 16 PHP
基于PHP生成简单的验证码
Jun 01 PHP
CakePHP框架Session设置方法分析
Feb 23 PHP
PHP+AjaxForm异步带进度条上传文件实例代码
Aug 14 PHP
PHP Redis扩展无法加载的问题解决方法
Aug 22 PHP
php集成开发环境详解
Sep 24 PHP
PHP常用函数之根据生日计算年龄功能示例
Oct 21 PHP
PHP设计模式(七)组合模式Composite实例详解【结构型】
May 02 PHP
PHP实现本地图片转base64格式并上传
May 29 PHP
PHP array_multisort() 函数的深入解析
Jun 20 #PHP
PHP操作MongoDB GridFS 存储文件的详解
Jun 20 #PHP
解析Linux下Varnish缓存的配置优化
Jun 20 #PHP
解析PHP中常见的mongodb查询操作
Jun 20 #PHP
PHP 解决session死锁的方法
Jun 20 #PHP
解析PHP可变函数的经典用法
Jun 20 #PHP
使用PHP求两个文件的相对路径
Jun 20 #PHP
You might like
提取HTML标签
2006/10/09 PHP
PHP小程序自动提交到自助友情连接
2009/11/24 PHP
PHP高级对象构建 工厂模式的使用
2012/02/05 PHP
Laravel框架基于ajax和layer.js实现无刷新删除功能示例
2019/01/17 PHP
laravel-admin 在列表页添加自定义按钮的例子
2019/09/30 PHP
Jquery attr(&quot;checked&quot;) 返回checked或undefined 获取选中失效
2013/10/10 Javascript
Jquery easyUI 更新行示例
2014/03/06 Javascript
js确认删除对话框适用于a标签及submit
2014/07/10 Javascript
Node.js中使用Log.io在浏览器中实时监控日志(等同tail -f命令)
2014/09/17 Javascript
jquery.ajax之beforeSend方法使用介绍
2014/12/08 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
2015/04/21 Javascript
详解Javascript模板引擎mustache.js
2016/01/20 Javascript
JavaScript模拟push
2016/03/06 Javascript
jQuery ajax方法传递中文时出现中文乱码的解决方法
2016/07/25 Javascript
jquery实现垂直和水平菜单导航栏
2020/08/27 Javascript
[原创]javascript typeof id==='string'?document.getElementById(id):id解释
2016/11/02 Javascript
JS实现的简易拖放效果示例
2016/12/29 Javascript
EasyUI中的dataGrid的行内编辑
2017/06/22 Javascript
JS获取input[file]的值并显示在页面的实现方法
2018/03/09 Javascript
vue-router中scrollBehavior的巧妙用法
2018/07/09 Javascript
深入浅出理解JavaScript闭包的功能与用法
2018/08/01 Javascript
vue根据进入的路由进行原路返回的方法
2018/09/26 Javascript
浅谈JavaScript 代码整洁之道
2018/10/23 Javascript
新手如何快速理解js异步编程
2019/06/24 Javascript
webpack的tree shaking的实现方法
2019/09/18 Javascript
JS函数参数的传递与同名参数实例分析
2020/03/16 Javascript
[04:02]DOTA2上海特锦赛小组赛第二日recap精彩回顾
2016/02/28 DOTA
python之DataFrame实现excel合并单元格
2021/02/22 Python
python中计算一个列表中连续相同的元素个数方法
2018/06/29 Python
对python指数、幂数拟合curve_fit详解
2018/12/29 Python
wxPython实现分隔窗口
2019/11/19 Python
电气自动化个人求职信范文
2014/02/03 职场文书
篮球社团活动总结
2014/06/27 职场文书
高中军训感想
2015/08/07 职场文书
干货!开幕词的写作方法
2019/04/02 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle