ホームページ  >  記事  >  バックエンド開発  >  PHPでワニスキャッシュファイルをクリアするにはどうすればよいですか?

PHPでワニスキャッシュファイルをクリアするにはどうすればよいですか?

WBOY
WBOYオリジナル
2016-07-25 08:52:11964ブラウズ
  1. function clearVarnish($ip,$url,$host=null){

  2. $errstr = '';

  3. $errno = '';
  4. $varnist_arr = isset($host) ? $host : C('VARNISH_LIST');
  5. foreach ($varnist_arr as $v){
  6. $fp = fsockopen ($ip, 2000, $errno, $errstr, 2);
  7. if (!$fp) {
  8. return false;
  9. } else {
  10. $out = "purge.url $url rn";
  11. fputs ($fp, $out);
  12. $out = fgets($fp , 4096);
  13. fclose ($fp);
  14. return $out;
  15. }
  16. }
  17. }
  18. ?>

コードをコピー

受信 URL をパラメータにすることはできないことに注意してください。例: www.baidu.com/?tn=sougou purge.url 後にクリアされた正規表現は www.baidu.com/(.?)sougou に変更できるためです。

Varnish が複数のサイトのコンテンツをキャッシュしており、指定されたサイト URL をクリアするか、単にサイトのホームページをクリアする必要がある場合は、purge.url の代わりに purge を使用する必要があります。

2. コード:

  1. function varnish_purge($ip, $host='', $url) {
  2. $errstr = '';
  3. $errno = '';
  4. $fp = fsockopen ($ip, 2000, $errno, $errstr, 2);
  5. if (!$fp) {
  6. return $errno;
  7. }else {
  8. if(!empty($host)){
  9. $out = "purge req.http.host == {$host } && req.url ~ ^/$ rn";
  10. }else{
  11. $out = " purge.url {$url} rn";
  12. }
  13. fputs ($fp, $out);
  14. $out = fgets($ fp, 4096);
  15. fclose ($fp);
  16. return $out
  17. }
  18. }
コードをコピー


声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。