true, CURLOPT_TIMEOUT=>3, CURLOPT_HTTPHEADER=>['Host: weval-consulting.com']]); $out = curl_exec($ch); $code = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($code == 200 && $out && strpos($out, '404') === false && strlen($out) > 20) { $j = json_decode($out, true); if ($j && ($j['ok'] ?? false)) { $discoveries[] = ['file'=>$base, 'action'=>$probe, 'size'=>strlen($out)]; } } } } file_put_contents($cache_file, json_encode(['ts'=>date('c'), 'discoveries'=>$discoveries], JSON_PRETTY_PRINT)); echo json_encode(['ok'=>true, 'scanned'=>count($files), 'discovered'=>count($discoveries), 'results'=>$discoveries]); exit; } if ($action === 'list') { if (file_exists($cache_file)) { echo file_get_contents($cache_file); } else { echo json_encode(['ok'=>false, 'error'=>'no scan yet, run action=scan']); } exit; } echo json_encode(['ok'=>false, 'actions'=>['scan','list']]);