80) continue; if (preg_match('/\d/u', $v)) continue; if (preg_match('#https?://|www\.|@#iu', $v)) continue; // Must start with a letter and contain only letter-like characters if (preg_match('/^\p{L}[\p{L}\s\.\-\']{1,79}$/u', $v)) { return $v; } } return ''; } /** * First value that looks like an email address. */ public static function find_email(array $fields): string { foreach ($fields as $v) { if (is_array($v)) { $v = implode(' ', array_map('strval', $v)); } $v = trim((string)$v); if ($v === '') continue; if (preg_match('/^\S+@\S+\.\S+$/u', $v)) { return $v; } } return ''; } }