0) define('MODE_EXEC', MODE_CLI); else define('MODE_EXEC', MODE_WS); /** TimeStamp Unix ** Si $onlyMiliSec=true, retourne juste les milisec du timestamp **/ function microtime_float($onlyMiliSec=false) { list($usec, $sec) = explode(' ', microtime()); if (!$onlyMiliSec) return ((float)$usec + (float)$sec); else return $usec; } /** Fait une pause aléatoire entre 0 et 15 secondes par défaut **/ function randsleep($min_sec=0, $max_sec=15) { sleep(rand($min_sec, $max_sec)); } /** Retourne la factorielle d'un nombre : 4! = 1*2*3*4 = 24 **/ function factorielle($nbr) { if($nbr === 0) // condition d'arret return 1; else return $nbr*factorielle($nbr-1); } /** Vérification que la variable demandé respecte bien les règles passées en paramètres * @param mixed Variable à tester * @param int Longueur minimum en caractère de la variable * @param int Longueur mximum * @param char(1) Type de variable A:Alphanumérique / N:Numérique * @param mixed Message textuel d'erreur à afficher en cas d'erreur ou false * @return mixed true, false ou Message d'erreur passé en paramètre */ function valideData($variable, $taille_min, $taille_max, $type_variable, $erreur=false) { if ( strlen((string)$variable) < $taille_min ) return $erreur; if ( strlen((string)$variable) > $taille_max ) return $erreur; if ( $type_variable == 'A' ) if ( is_string($variable) == true ) return true; else return $erreur; elseif ( $type_variable == 'N') { for ($i=0; $i < strlen((string)$variable); $i++) { $car = substr((string)$variable,$i,1); if ($car<'0' || $car>'9') return $erreur; } return true; } return $erreur; } function adapteOCtets($size) { $kb = 1024; // Kilobyte $mb = 1024 * $kb; // Megabyte $gb = 1024 * $mb; // Gigabyte $tb = 1024 * $gb; // Terabyte if($size==0) return '0'; else if($size < $kb) return $size.'o'; else if($size < $mb) return round($size/$kb,2).'ko'; else if($size < $gb) return round($size/$mb,2).'Mo'; else if($size < $tb) return round($size/$gb,2).'Go'; else return round($size/$tb,2).'To'; } /** ** Enregistrer une information dans la log ** ** @param string $debugLevel E=Error, W=Warning, N=Notice, I=Info, D=Debug ** @param string $message Message d'erreur à inscrire dans la log ** @param integer $line __LINE__ ** @param string $file __FILE__ ** @param string $function __FUNCTION__ ** @param string $class __CLASS___ **/ function debugLog($debugLevel, $message, $line, $file, $function, $class) { if (!file_exists(LOG_PATH.'/debug.log')) { $fp=@fopen(LOG_PATH.'/debug.log', 'a'); @fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Memory;Message'.EOL); } else $fp=@fopen(LOG_PATH.'/debug.log', 'a'); @fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'. $_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'. @gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL); @fclose($fp); if ($debugLevel=='E'){ if (!file_exists(LOG_PATH.'/debugError.log')) { $fp=@fopen(LOG_PATH.'/debugError.log', 'a'); @fwrite($fp, 'Date/Heure;Niveau;Script;Login;Password;Adresse IP;Action SOAP;Ligne;Fichier;Fonction;Classe;Domaine;POST DATA;Message'.EOL); } else $fp=fopen(LOG_PATH.'/debugError.log', 'a'); @fwrite($fp, date('Y/m/d-H:i:s') .';'. $debugLevel .';'. $_SERVER['PHP_SELF'] .';'. $_SERVER['PHP_AUTH_USER'] .';'. $_SERVER['PHP_AUTH_PW'] .';'. $_SERVER['REMOTE_ADDR'] .';'. $_SERVER['HTTP_SOAPACTION'] .';'.$line.';'. $file.';'. $function.';'. $class .';'. @gethostbyaddr($_SERVER['REMOTE_ADDR']) .';'. $HTTP_RAW_POST_DATA .';'. @memory_get_usage().';'. $message . EOL); @fclose($fp); //die($message); } } function prepareString($str) { $tabReplace = array( 'œ' => "oe", ''.chr(160) => '', ); $str = utf8_decode($str); $str = strtr($str,$tabReplace); return utf8_encode($str); } /** ** Déplacement d'un fichier. Retourne false en cas d'erreur. ** ** @param string $from ** @param string $to ** @return bool **/ function move($from, $to) { return (copy($from, $to) and unlink($from)); } /** Converti une IP en nombre ** ** @param string $ip Adresse IP ** @return integer **/ function getIpNumber($ip) { $tab=explode('.', $ip); return (($tab[0]*256*256*256) + ($tab[1]*256*256) + ($tab[2]*256) + ($tab[3])); } /** Vérifie si une IP est dans une plage du type 192.168.3.1-192.168.3.10 ** ** @param string $plage_1 Plage IP de début ** @param string $plage_2 Plage IP de fin ** @param string $ip Adresse IP à tester ** @return boolean **/ function in_plage($plage_1,$plage_2,$ip){ $ip2=getIpNumber($ip); if ($ip2>=getIpNumber($plage_1) && $ip2<=getIpNumber($plage_2)) return true; else return false; } /** Controle si une adresse IP est dans une liste des IP communiquées sous la forme 192.168.3.5-192.68.3.10;192.168.3.*;192.168.3.10 ** ** @param string $strPlageIP La plage d'adresses IP ** @param string $adresseIP L'adresse IP à tester ** @return boolean **/ function checkPlagesIp($strPlageIP, $adresseIP) { $connected=false; $tabIpAllowed=explode(';', trim($strPlageIP)); if (count($tabIpAllowed)==1 && $tabIpAllowed[0]=='') $tabIpAllowed=array(); foreach ($tabIpAllowed as $ip) { $tabPlages=explode('-', $ip); // C'est une plage d'adresse '-' if (isset($tabPlages[1])) $connected=in_plage($tabPlages[0],$tabPlages[1],$adresseIP); else { // C'est une adresse avec ou sans masque '*' if (preg_match('/^'.str_replace('*','.*',str_replace('.','\.',$ip)).'$/', $adresseIP) ) $connected=true; } if ($connected) break; } if (count($tabIpAllowed)==0) return false; elseif (!$connected) { return false; } return true; } /** * @return bool * @param string $in * @param string $out * @desc compressing the file with the bzip2-extension */ function bzip2 ($in, $out) { if (!file_exists ($in) || !is_readable ($in)) return false; if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) )) return false; $in_file = fopen ($in, 'rb'); $out_file = bzopen ($out.'.bz2', 'wb'); while (!feof ($in_file)) { $buffer = fgets ($in_file, 4096); bzwrite ($out_file, $buffer, 4096); } fclose ($in_file); bzclose ($out_file); return true; } /** * @return bool * @param string $in * @param string $out * @desc uncompressing the file with the bzip2-extension */ function bunzip2 ($in, $out) { if (!file_exists ($in) || !is_readable ($in)) return false; if ((!file_exists ($out) && !is_writeable (dirname ($out)) || (file_exists($out) && !is_writable($out)) )) return false; $in_file = bzopen ($in, "rb"); $out_file = fopen ($out, "wb"); while ($buffer = bzread ($in_file, 4096)) { fwrite ($out_file, $buffer, 4096); } bzclose ($in_file); fclose ($out_file); return true; } class DomDocument2 extends DOMDocument { function getValueFromTag($tagName) { $items=$this->getElementsByTagName($tagName); foreach ($items as $item) { return utf8_decode($item->nodeValue); } } } ?>