@,;:\.\\\"\[]"; $atom = "$valid_chars+"; $quoted_user='(\"[^\"]*\")'; $word = "($atom|$quoted_user)"; $user_pat = "^$word(\.$word)*$"; $ip_domain_pat='^\[([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\.([0-9]{1,3})\]$'; $domain_pat = "^$atom(\.$atom)*$"; if (eregi($mail_pat, $email, $components)) { $user = $components[1]; $domain = $components[2]; // validate user if (eregi($user_pat, $user)) { // validate domain if (eregi($ip_domain_pat, $domain, $ip_components)) { // this is an IP address for ($i=1;$i<=4;$i++) { if ($ip_components[$i] > 255) { $valid_address = false; break; } } } else { // Domain is a name, not an IP if (eregi($domain_pat, $domain)) { /* domain name seems valid, but now make sure that it ends in a valid TLD or ccTLD and that there's a hostname preceding the domain or country. */ $domain_components = explode(".", $domain); // Make sure there's a host name preceding the domain. if (sizeof($domain_components) < 2) { $valid_address = false; } else { $top_level_domain = strtolower($domain_components[sizeof($domain_components)-1]); // Allow all 2-letter TLDs (ccTLDs) if (eregi('^[a-z][a-z]$', $top_level_domain) != 1) { $tld_pattern = ''; // Get authorized TLDs from text file $tlds = file( 'tld.txt'); while (list(,$line) = each($tlds)) { // Get rid of comments $words = explode('#', $line); $tld = trim($words[0]); // TLDs should be 3 letters or more if (eregi('^[a-z]{3,}$', $tld) == 1) { $tld_pattern .= '^' . $tld . '$|'; } } // Remove last '|' $tld_pattern = substr($tld_pattern, 0, -1); if (eregi("$tld_pattern", $top_level_domain) == 0) { $valid_address = false; } } } } else { $valid_address = false; } } } else { $valid_address = false; } } else { $valid_address = false; } if ($valid_address && ENTRY_EMAIL_ADDRESS_CHECK == 'true') { if (!checkdnsrr($domain, "MX") && !checkdnsrr($domain, "A")) { $valid_address = false; } } return $valid_address; } /** * @return booleen * @param $var : variable à tester * @desc Verifie que la variable est definie **/ function string_is_null($var) { return in_array($var,array("",null,undefined)); } /** * @return texte reduit * @param $texte : texte à tronquer * @param $taille : taille max * @param $tags : chiande caractère a ajouter à la fin si tronqué (facultatif); * @desc Réduit une chaine de caractères **/ function string_reduc($texte,$taille,$tags = '...') { $texteSize = strlen($texte); $texte=substr($texte,0,$taille); if ($texteSize<=$taille) { return $texte; }elseif ($texteSize>$taille){ return $texte."".$tags; } } /** * @return Rien * @param Tableau à traiter * @desc Permet de traiter un tableau (A l'origine utilisé avec array_walk) **/ function string_encode_csv(&$item){ $item1 = preg_replace("([\n\r])","
",$item1); $item1 = str_replace(";",":",$item1); } /** * @return Texte formaté HTML * @param Tableau à traiter * @desc Permet de traiter un tableau (A l'origine utilisé avec array_walk) **/ function string_decode_bbcode($texte){ $texte=nl2br(StripSlashes($texte)); $array_replace= array( "gras" => "b", "italique" => "i", "souligné" => "u" ); foreach( $array_replace as $k=>$v){ $texte = str_replace("[".$k."]","<".$v.">",$texte); $texte = str_replace("[/".$k."]","",$texte); } $texte = preg_replace("#\[color=(\#[0-9A-F]{6}|[a-z\-]+)\](.*?)\[/color\]#si", "\\2", $texte); $texte = preg_replace("#\[size=([\-\+]?[1-2]?[0-9])\](.*?)\[/size\]#si", "\\2", $texte); return $texte; } /** * @return Texte formaté HTML * @param Tableau à traiter * @desc Permet de traiter un tableau (A l'origine utilisé avec array_walk) **/ function string_sans_accent($texte){ $tofind = "ÀÁÂÃÄÅàáâãäåÒÓÔÕÖØòóôõöøÈÉÊËèéêëÇçÌÍÎÏìíîïÙÚÛÜùúûüÿÑñ"; $replac = "AAAAAAaaaaaaOOOOOOooooooEEEEeeeeCcIIIIiiiiUUUUuuuuyNn"; return(strtr($texte,$tofind,$replac)); } /** * @return Texte avec retour ligne * @param Texte * @desc Echo avec un
à la fin **/ function echobr($txt = "test",$entities = true){ if(is_array($txt)){ print_r($txt); }elseif($entities){ echo htmlentities($txt)."
"; }else{ echo $txt."
"; } } /** * @return Texte affiché en bas de page * @param Mixed * @desc Affiche le texte en bas de page (supporte les print_r) **/ function echo_r($tab,$level=1){ global $PRINT_R; if(ereg("www.aressy.com",$_SERVER['SERVER_NAME']) || $_SERVER['SERVER_ADDR']=="195.68.9.130"){ define('DEBUG_PRINT_R',1); }else{ define('DEBUG_PRINT_R',true); } $PRINT_R[] = print_r($tab,DEBUG_PRINT_R); } /** * @return Password * @param int length * @desc Permet de générer un mot de passe a peu pres lisible **/ function string_password_lisible($length=5){ $passe = ""; $consonnes = array("b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "z", "bl", "br", "cl", "cr", "ch", "dr", "fl", "fr", "gl", "gr", "pl", "pr", "qu", "sl", "sr"); $voyelles = array("a", "e", "i", "o", "u", "ae", "ai", "au", "eu", "ia", "io", "iu", "oa", "oi", "ou", "ua", "ue", "ui"); $nbrC = count($consonnes) - 1; $nbrV = count($voyelles) - 1; for ($i = 0; $i < $length; $i++) { $passe .= $consonnes[rand(0, $nbrC)] . $voyelles[rand(0, $nbrV)]; } return substr($passe, 0, $length); } ?>