victories adlı üyeden alıntı: mesajı görüntüle
guzlle kurmanız gerekiyordu önce, curl ile yapalım biz

<?php

// Cloudflare API kimlik bilgileri
$apiKey = 'YOUR_API_KEY';
$email = 'YOUR_EMAIL';
$zoneId = 'YOUR_ZONE_ID';

// Kuralları listeleme fonksiyonu
function listRules($apiKey, $email, $zoneId) {
    // CURL başlat
    $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules");
    
    // CURL ayarları
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "X-Auth-Email: {$email}",
        "X-Auth-Key: {$apiKey}",
        "Content-Type: application/json"
    ]);

    // İsteği gönder
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    // CURL hata kontrolü
    if(curl_errno($ch)) {
        echo "CURL Hatası: " . curl_error($ch) . "\n";
        curl_close($ch);
        return;
    }
    curl_close($ch);

    // Yanıtı işle
    $result = json_decode($response, true);
    
    if ($httpCode == 200 && $result['success']) {
        if (empty($result['result'])) {
            echo "Hiç kural bulunamadı.\n";
            return;
        }

        echo "MEVCUT KURALLAR:\n";
        echo str_repeat('-', 100) . "\n";
        echo sprintf("%-32s | %-20s | %-15s | %s\n", 'KURAL ID', 'AD', 'DURUM', 'AÇIKLAMA');
        echo str_repeat('-', 100) . "\n";

        foreach ($result['result'] as $rule) {
            echo sprintf("%-32s | %-20s | %-15s | %s\n",
                $rule['id'],
                substr($rule['description'] ?? 'İsimsiz', 0, 20),
                $rule['status'],
                $rule['expression'] ?? 'Açıklama yok'
            );
        }

        echo "\nToplam " . count($result['result']) . " kural listelendi.\n";
    } else {
        echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
        print_r($result['errors'] ?? 'Bilinmeyen hata');
    }
}

// Kural aktifleştirme fonksiyonu
function activateRule($apiKey, $email, $zoneId, $ruleId) {
    // CURL başlat
    $ch = curl_init("https://api.cloudflare.com/client/v4/zones/{$zoneId}/firewall/rules/{$ruleId}");
    
    // İstek verisi
    $data = json_encode(['status' => 'active']);
    
    // CURL ayarları
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'PATCH');
    curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
    curl_setopt($ch, CURLOPT_HTTPHEADER, [
        "X-Auth-Email: {$email}",
        "X-Auth-Key: {$apiKey}",
        "Content-Type: application/json"
    ]);

    // İsteği gönder
    $response = curl_exec($ch);
    $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);

    // CURL hata kontrolü
    if(curl_errno($ch)) {
        echo "CURL Hatası: " . curl_error($ch) . "\n";
        curl_close($ch);
        return;
    }
    curl_close($ch);

    // Yanıtı işle
    $result = json_decode($response, true);
    
    if ($httpCode == 200 && $result['success']) {
        echo "Kural başarıyla aktif edildi.\n";
    } else {
        echo "Hata oluştu (HTTP Kodu: $httpCode):\n";
        print_r($result['errors'] ?? 'Bilinmeyen hata');
    }
}

// Kullanım örnekleri:

// Tüm kuralları listele
echo "Kurallar listeleniyor...\n\n";
listRules($apiKey, $email, $zoneId);

// Belirli bir kuralı aktif et
// echo "\nKural aktif ediliyor...\n";
// activateRule($apiKey, $email, $zoneId, 'KURAL_ID');
Örnek kullanım:
// Önce kuralları listele
listRules($apiKey, $email, $zoneId);

// Ardından istediğiniz kuralı aktif et
activateRule($apiKey, $email, $zoneId, 'buraya_kural_id_gelecek');
sorunsuz çalıştı hocam. kapatmak için ne kullanacağız passive mi disable mı?