Can't empty folder contents can only empty the specified link cache
Copy Code code as follows:
<?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, Watts, $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;
}
}
}
?>
It is to be noted that:Incoming URLs are not allowed with parameters such as: Www.baidu.com/?tn=sougou
Because the purge.url is empty after the regular expression can be changed to www.baidu.com/(.?) Sougou this will do.
When a varnish cache multiple site content needs to clear the specified site URL or simply clear the site first to use the purge instead of Purge.url
Copy Code code as follows:
function Varnish_purge ($ip, $host = ', $url) {
$errstr = ';
$errno = ';
$fp = Fsockopen ($ip, Watts, $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;
}
}