La función que quiero ejecutar con un intervalo de 30 minutos entre cada ejecución es validate_digest($realm, $users) :
$realm = 'Restricted area'; $users = array('admin' => 'admin', 'guest' => 'guest'); $username = validate_digest($realm,$users); $ati = ($_SERVER['REQUEST_TIME'] % (30*60)); function send_digest($realm) { header('HTTP/1.1 401 Unauthorized'); header('WWW-Authenticate: Digest realm="'.$realm.'",qop="auth",nonce="'.md5(uniqid()).'",opaque="'.md5($realm).'"'); die('You need to enter a valid username and password');} function validate_digest($realm, $users) { unset($_SERVER['PHP_AUTH_DIGEST']); unset($digest); unset($digest_info); unset($request_digest); if (!isset($_SERVER['PHP_AUTH_DIGEST'])) {send_digest($realm);} $username = parse_digest($_SERVER['PHP_AUTH_DIGEST'], $realm, $users); if ($username === false) {send_digest($realm);} return $username; } function parse_digest($digest, $realm, $users) { $digest_info = array(); foreach (array('username','uri','nonce','cnonce','response') as $part) { if (preg_match('/'.$part.'=([\'"]?)(.*?)\1/', $digest, $match)) { // The part was found, save it for calculation $digest_info[$part] = $match[2]; }else{ return false; } } if (preg_match('/qop=auth(,|$)/', $digest)) { $digest_info['qop'] = 'auth'; }else{ return false; } if (preg_match('/nc=([0-9a-f]{8})(,|$)/', $digest, $match)) { $digest_info['nc'] = $match[1]; }else{ return false; } $A1 = $digest_info['username'] . ':' . $realm . ':' . $users[$digest_info['username']]; $A2 = $_SERVER['REQUEST_METHOD'] . ':' . $digest_info['uri']; $request_digest = md5(implode(':', array(md5($A1), $digest_info['nonce'], $digest_info['nc'],$digest_info['cnonce'], $digest_info['qop'], md5($A2)))); if ($request_digest != $digest_info['response']) { return false; } if (!isset($_SERVER['PHP_AUTH_DIGEST'])) {send_digest($realm);} }Estaba planeando usar Ajax, JavaScript o JQuery, pero realmente no sé cómo trabajar con ninguno de esos lenguajes de programación.
necesita programar un cronjob o puede usar un servicio en línea como https://cron-job.org/en/