/**
* @return booleen
* @param $email : teste la valide d'un email
* @desc Verifie que la date est definie
**/
function string_email_valide($email) {
$valid_address = true;
$mail_pat = '^(.+)@(.+)$';
$valid_chars = "[^] \(\)<>@,;:\.\\\"\[]";
$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."]","".$v.">",$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);
}
?>