手机
当前位置:查字典教程网 >编程开发 >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 缓存的详解(包括指定站点下的)】相关文章:

PHP4与PHP3中一个不兼容问题的解决方法

PHP下MAIL的另一解决方案

搜索引擎技术核心揭密

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

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

session 的生命周期是多长

php-fpm 启动参数及重要配置详解

PHP SOCKET编程详解

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

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

精品推荐
分类导航