You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用PHP调用CloudFlare API按URL清除单个缓存文件

实现Cloudflare按URL清除单个缓存文件的PHP代码

没问题!我帮你把代码调整成按指定URL清除缓存的版本,完全贴合Cloudflare的API要求:

<?php
// 替换成你的Cloudflare认证信息和Zone ID
$authKey = "你的Cloudflare API密钥";
$authEmail = "你的Cloudflare注册邮箱";
$zoneId = "你的域名Zone ID";

// 要清除缓存的单个(或多个)文件的完整URL
$targetUrls = [
    "https://your-domain.com/css/main.css",
    // 可以添加更多URL,比如 "https://your-domain.com/js/app.js"
];

$endpoint = "purge_cache";
$data = [ "files" => $targetUrls ]; // 核心变化:用files数组指定要清除的URL
$url = "https://api.cloudflare.com/client/v4/zones/{$zoneId}/{$endpoint}";

$opts = ['http' => [
    'method' => 'POST', // 注意:清除单个文件的API要求用POST方法,不是DELETE
    'header' => [
        "Content-Type: application/json",
        "X-Auth-Key: {$authKey}",
        "X-Auth-Email: {$authEmail}",
    ],
    'content' => json_encode($data),
]];

$context = stream_context_create($opts);
$result = file_get_contents($url, false, $context);

// 可选:处理返回结果,查看是否成功
$response = json_decode($result, true);
if ($response['success']) {
    echo "缓存清除成功!";
} else {
    echo "缓存清除失败:" . implode(', ', $response['errors']);
}
?>

关键修改说明:

  • HTTP方法变更:原来清除全部缓存用的是DELETE,但清除单个/多个文件的API要求使用POST,这是核心区别
  • 请求数据调整:把purge_everything替换成files数组,里面放你要清除的完整URL(必须包含http://或https://,是Cloudflare缓存的完整文件路径)
  • 认证信息保留:X-Auth-Key和X-Auth-Email的用法和之前完全一致,不需要修改

小提示:

如果只需要清除单个文件,$targetUrls数组里只放一个URL就行;如果要批量清除多个文件,直接在数组里添加更多URL即可。

内容的提问来源于stack exchange,提问作者ganjo ali

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 04:22:37