PATH: //home/hwyuvbry/pelanggan.waroenkhoki123.web.id
FILE_BARU
CREATE
FOLDER_BARU
MKDIR
UPLOAD_FILE
GO
[ .. KEMBALI ]
📄 .htaccess
↓
X
📄 .htaccess.php
↓
X
📄 .well
↓
X
📁 .well-known/
X
📁 api/
X
📄 api_result.log
↓
X
📁 asset/
X
📁 assets/
X
📄 bbfs.php
↓
X
📄 betting.php
↓
X
📄 buku-mimpi.php
↓
X
📁 captcha/
X
📁 cdn-cgi/
X
📁 cdn.jsdelivr.net/
X
📁 css/
X
📄 data_pengeluaran.php
↓
X
📁 db/
X
📄 debug_game_launch.log
↓
X
📄 deposit.php
↓
X
📄 detail_bet.php
↓
X
📄 error_log
↓
X
📁 function/
X
📄 history.php
↓
X
📄 history_togel.php
↓
X
📁 images/
X
📄 import_games.php
↓
X
📄 import_games.phpSGX#
↓
X
📄 index.php
↓
X
📁 js/
X
📁 komando86/
X
📄 live-casino.php
↓
X
📄 live-casino.php#
↓
X
📄 login.php
↓
X
📄 logout.php
↓
X
📄 pesan.php
↓
X
📄 play.php
↓
X
📄 play.php#$$
↓
X
📄 poltar.php
↓
X
📄 profile.php
↓
X
📄 promo.php
↓
X
📄 qris_callback_log.txt
↓
X
📄 qris_cb.php
↓
X
📄 referral.php
↓
X
📄 referral.php#
↓
X
📄 register.php
↓
X
📄 riwayat_menang.php
↓
X
📄 robots.txt
↓
X
📄 sambung-ayam.php
↓
X
📄 sgx.log
↓
X
📄 sitemap.php
↓
X
📄 sitemap.xml
↓
X
📄 slot-rtp.php
↓
X
📄 slot.php
↓
X
📄 sosmed.php
↓
X
📄 sport.php
↓
X
📄 sport.php#
↓
X
📄 tembak-ikan.php
↓
X
📁 template/
X
📄 togel-scraper.php
↓
X
📄 togel.php
↓
X
📄 turn-over.php
↓
X
📄 update_saldo.php
↓
X
📁 upload/
X
📁 vendor/
X
📄 virtual.php
↓
X
📄 withdraw.php
↓
X
📄 ykzexpds_bunga.sql
↓
X
SAVING...
BERHASIL DIUBAH!
EDITING: togel-scraper.php
<?php ini_set('display_errors', 1); ini_set('display_startup_errors', 1); error_reporting(E_ALL); header('Content-Type: application/json; charset=utf-8'); include __DIR__ . '/db/koneksi.php'; $db = isset($koneksi) ? $koneksi : (isset($conn) ? $conn : null); if (!$db) { die(json_encode(['ok' => false, 'message' => 'Gagal terhubung ke database.'])); } function fetch_html($url) { $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt_array($ch, [ CURLOPT_RETURNTRANSFER => true, CURLOPT_FOLLOWLOCATION => true, CURLOPT_TIMEOUT => 30, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_USERAGENT => 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36' ]); $html = curl_exec($ch); curl_close($ch); return $html; } try { $html = fetch_html("https://bingkai4d.it.com/mobile/togel"); if (!$html) throw new Exception("Gagal mengambil data HTML."); // Bersihkan HTML dari enter dan space berlebih agar lurus $html_clean = str_replace(array("\r", "\n", "\t"), ' ', $html); $html_clean = preg_replace('/\s+/', ' ', $html_clean); // MASTER DAFTAR PASARAN TARGET (Sesuai dengan list teks yang Anda berikan) $target_pasarans = [ 'Sydney Pools', 'Sydney Lotto', 'Singapore', 'Hongkong lotto', 'Hongkong Pools', 'TOTO MACAU 13', 'TOTO MACAU 16', 'TOTO MACAU 19', 'TOTO MACAU 22', 'Toto Macau 23', 'Toto Macau 00', 'CHINA POOLS', 'JAPAN POOLS', 'MAGNUM CAMBODIA', 'CALIFORNIA D4', 'FLORIDA EVE', 'NEW YORK EVE', 'MISSOURI EVE', 'KENTUCKY EVE', 'CAROLINA EVE', 'OREGON 7 PM', 'OREGON 10 PM', 'BULLSEYE', 'NEW YORK MID', 'NEW JERSEY MID', 'KENTUCKY MID', 'CAROLINA DAY', 'PCSO', 'GERMANY PLUS', 'MARYLAND MID', 'MISSOURI MID', 'GEORGIA C4 MID', 'TAIWAN', 'OREGON 1 PM', 'MOROCCO 4', 'ILLINOIS MID', 'PENNSYLVANIA DAY', 'VIRGINIA DAY', 'ILLINOIS EVE', 'PENNSYLVANIA EVE' ]; $data = []; // Kita pecah HTML berdasarkan teks "Tutup:" karena teks ini pasti mengiringi setiap pasaran $blocks = explode('Tutup:', $html_clean); if (count($blocks) > 1) { // Blok pertama diabaikan karena sebelum pasaran pertama for ($i = 1; $i < count($blocks); $i++) { $current_block = $blocks[$i]; // Mengintip blok sebelumnya untuk mencari nama pasaran terdekat $prev_block = $blocks[$i - 1]; $found_pasaran = ''; // Cari nama pasaran dari daftar target yang posisinya paling akhir di blok sebelum "Tutup:" foreach ($target_pasarans as $target) { // Gunakanstripos (Case-Insensitive) agar aman dari perbedaan huruf besar-kecil di HTML asli if (stripos($prev_block, $target) !== false) { $found_pasaran = $target; } } if (empty($found_pasaran)) continue; // 1. AMBIL HARI & TANGGAL (Mencari pola format tanggal 00/00/0000 di dalam blok ini) $hari = ''; $tanggal = ''; if (preg_match('/([a-zA-Z]+)\s+([0-9]{2}\/[0-9]{2}\/[0-9]{4})/i', $current_block, $m_date)) { $hari = trim($m_date[1]); $tanggal = trim($m_date[2]); } // 2. AMBIL ANGKA BALL (Mencari 4 digit angka ball beruntun di dalam blok ini) $hasil = ''; // Kita kumpulkan semua angka tunggal di dalam tag div/span setelah kata "Buka" if (preg_match_all('/([0-9])<\/div>/i', $current_block, $m_balls)) { // Ambil maksimal 4 digit angka pertama yang ditemukan $hasil = implode('', array_slice($m_balls[1], 0, 4)); } // Validasi: Jika angka belum 4 digit (misal masih kosong), lewati dulu if (strlen($hasil) === 4) { // Masukkan ke tampungan jika belum ada pasaran yang sama di tanggal yang sama dalam loop ini $key = $found_pasaran . '_' . $tanggal; $data[$key] = [ 'pasaran' => $found_pasaran, 'hari' => $hari, 'tanggal' => $tanggal, 'hasil' => $hasil ]; } } } // Ubah asosiatif array kembali ke indexed array $data = array_values($data); // --- PROSES SIMPAN OTOMATIS KE DATABASE --- $saved_count = 0; $db_errors = []; if (!empty($data)) { foreach ($data as $row) { $p = mysqli_real_escape_string($db, $row['pasaran']); $h = mysqli_real_escape_string($db, $row['hari']); $t = mysqli_real_escape_string($db, $row['tanggal']); $as = mysqli_real_escape_string($db, $row['hasil']); $q = "INSERT INTO pengeluaran_togel (pasaran, hari, tanggal, hasil) VALUES ('$p', '$h', '$t', '$as') ON DUPLICATE KEY UPDATE hasil = '$as', hari = '$h'"; if (mysqli_query($db, $q)) { $saved_count++; } else { $db_errors[] = mysqli_error($db); } } } echo json_encode([ 'ok' => true, 'message' => 'Scraper V5 Berhasil Meretas Struktur Data.', 'total_scraped' => count($data), 'total_saved_to_db' => $saved_count, 'database_errors' => $db_errors, 'data' => $data ], JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); } catch (Exception $e) { echo json_encode(['ok' => false, 'error_message' => $e->getMessage()]); } ?>
SIMPAN PERUBAHAN