Php 清除缓存子目录Cloudflare

Php 清除缓存子目录Cloudflare,php,cloudflare,Php,Cloudflare,我正在开发一个清除特定目录子目录缓存的函数 如果有人有主意 这是我的论文 <?php class Custom_Tools_Cflare { public function clear($dir,$host,$uri) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/xxxxxxxxxx/purge_cach

我正在开发一个清除特定目录子目录缓存的函数 如果有人有主意 这是我的论文

<?php
class Custom_Tools_Cflare
{
    public function clear($dir,$host,$uri) {
        $ch = curl_init();

        curl_setopt($ch, CURLOPT_URL, "https://api.cloudflare.com/client/v4/zones/xxxxxxxxxx/purge_cache");
        curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
        curl_setopt($ch, CURLOPT_POSTFIELDS, "{\"files\":[\"http://xxxx.com/".$dir."/".$uri."\",{\"url\":\"http://xxxx.com/".$dir."/".$uri."\",\"headers\":{\"X-Forwarded-Host\":\"".$host."\",\"X-Host\":\"xxxxxxx.com\"}}]}");
        curl_setopt($ch, CURLOPT_POST, 1);

        $headers = array();
        $headers[] = "X-Auth-Email: xxxx@xxxx.com";
        $headers[] = "X-Auth-Key: xxxxxxxxxxx";
        $headers[] = "Content-Type: application/json";
        curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);

        $result = curl_exec($ch);
        if (curl_errno($ch)) {
            echo 'Error:' . curl_error($ch);
        }
        curl_close ($ch);
    }
    public function myfunction(){

        $di = new RecursiveDirectoryIterator('http://xxxxx.com/');
        foreach (new RecursiveIteratorIterator($di) as $filename => $file) {
        $file->clear($di,$host,$uri);
        }
    }
}

您可以使用我编写的名为purge cloudflare cache的模块清除细分缓存:

答案如下: