PageRenderTime 48ms CodeModel.GetById 18ms RepoModel.GetById 0ms app.codeStats 0ms

/app/Helpers/functions.php

https://bitbucket.org/hfab/webservice
PHP | 281 lines | 228 code | 39 blank | 14 comment | 38 complexity | 931201552cb8b5bd0ed40a670e41fc4a MD5 | raw file
Possible License(s): BSD-2-Clause, Apache-2.0, MIT, GPL-3.0, LGPL-2.1, MPL-2.0-no-copyleft-exception
  1. <?php
  2. function big_number($value) {
  3. return number_format($value, 0, ',',' ');
  4. }
  5. function formatBytes($bytes, $precision = 2) {
  6. $units = array('B', 'KB', 'MB', 'GB', 'TB');
  7. $bytes = max($bytes, 0);
  8. $pow = floor(($bytes ? log($bytes) : 0) / log(1024));
  9. $pow = min($pow, count($units) - 1);
  10. // Uncomment one of the following alternatives
  11. // $bytes /= pow(1024, $pow);
  12. $bytes /= (1 << (10 * $pow));
  13. return round($bytes, $precision) . ' ' . $units[$pow];
  14. }
  15. //Convertisseurs des caractères très très spéciaux
  16. function valid_chars($str)
  17. {
  18. $conv = array(
  19. chr(129) => '',
  20. chr(130) => '& #8218',
  21. chr(131) => '& #402;',
  22. chr(132) => '& #8222;',
  23. chr(133) => '& #8230;',
  24. chr(134) => '& #8224;',
  25. chr(135) => '& #8225;',
  26. chr(136) => '& #710;',
  27. chr(137) => '& #8240;',
  28. chr(138) => '& #352;',
  29. chr(139) => '& #8249;',
  30. chr(140) => '& #338;',
  31. chr(141) => '',
  32. chr(142) => '',
  33. chr(143) => '',
  34. chr(144) => '',
  35. chr(145) => '& #8216;',
  36. chr(39) => '& #8217;',
  37. chr(147) => '& #8220;',
  38. chr(148) => '& #8221;',
  39. chr(149) => '& #8226;',
  40. chr(150) => '& #8211;',
  41. chr(151) => '& #8212;',
  42. chr(152) => '& #732;',
  43. chr(153) => '& #8482;',
  44. chr(154) => '& #353;',
  45. chr(155) => '& #8250;',
  46. chr(156) => '& #339;',
  47. chr(157) => '',
  48. chr(158) => '',
  49. chr(159) => '& #376;'
  50. );
  51. return str_replace(array_values($conv),array_keys($conv),$str);
  52. return $str;
  53. }
  54. function generateWSSEHeader($username, $password)
  55. {
  56. $created = date('c');
  57. $nonce = substr(md5(uniqid('nonce_', true)),0,16);
  58. $nonce64 = base64_encode($nonce);
  59. $passwordDigest = base64_encode(sha1($nonce . $created . $password, true));
  60. return array('X-WSSE: UsernameToken Username="' . $username . '", PasswordDigest="' . $passwordDigest . '", Nonce="' . $nonce64 . '", Created="'. $created . '"');
  61. }
  62. function stripAccents($string)
  63. {
  64. return strtr($string,'àáâãäçèéêëìíîïñòóôõöùúûüýÿÀÁÂÃÄÇÈÉÊËÌÍÎÏÑÒÓÔÕÖÙÚÛÜÝ',
  65. 'aaaaaceeeeiiiinooooouuuuyyAAAAACEEEEIIIINOOOOOUUUUY');
  66. }
  67. function removeAccents($string)
  68. {
  69. return iconv('UTF-8', 'ASCII//TRANSLIT//IGNORE', $string);
  70. }
  71. function stripAccents2($texte)
  72. {
  73. $texte = str_replace(
  74. array(
  75. 'à', 'â', 'ä', 'á', 'ã', 'å',
  76. 'î', 'ï', 'ì', 'í',
  77. 'ô', 'ö', 'ò', 'ó', 'õ', 'ø',
  78. 'ù', 'û', 'ü', 'ú',
  79. 'é', 'è', 'ê', 'ë',
  80. 'ç', 'ÿ', 'ñ',
  81. 'À', 'Â', 'Ä', 'Á', 'Ã', 'Å',
  82. 'Î', 'Ï', 'Ì', 'Í',
  83. 'Ô', 'Ö', 'Ò', 'Ó', 'Õ',
  84. 'Ù', 'Û', 'Ü', 'Ú',
  85. 'É', 'È', 'Ê', 'Ë',
  86. 'Ç', 'Ÿ', 'Ñ'
  87. ),
  88. array(
  89. 'a', 'a', 'a', 'a', 'a', 'a',
  90. 'i', 'i', 'i', 'i',
  91. 'o', 'o', 'o', 'o', 'o', 'o',
  92. 'u', 'u', 'u', 'u',
  93. 'e', 'e', 'e', 'e',
  94. 'c', 'y', 'n',
  95. 'A', 'A', 'A', 'A', 'A', 'A',
  96. 'I', 'I', 'I', 'I',
  97. 'O', 'O', 'O', 'O', 'O',
  98. 'U', 'U', 'U', 'U',
  99. 'E', 'E', 'E', 'E',
  100. 'C', 'Y', 'N'
  101. ),$texte);
  102. return $texte;
  103. }
  104. function pre($var)
  105. {
  106. echo "<pre>";
  107. print_r($var);
  108. echo "</pre>";
  109. }
  110. function is_utf8($str)
  111. {
  112. $c=0; $b=0;
  113. $bits=0;
  114. $len=strlen($str);
  115. for($i=0; $i<$len; $i++){
  116. $c=ord($str[$i]);
  117. if($c > 128){
  118. if(($c >= 254)) return false;
  119. elseif($c >= 252) $bits=6;
  120. elseif($c >= 248) $bits=5;
  121. elseif($c >= 240) $bits=4;
  122. elseif($c >= 224) $bits=3;
  123. elseif($c >= 192) $bits=2;
  124. else return false;
  125. if(($i+$bits) > $len) return false;
  126. while($bits > 1){
  127. $i++;
  128. $b=ord($str[$i]);
  129. if($b < 128 || $b > 191) return false;
  130. $bits--;
  131. }
  132. }
  133. }
  134. return true;
  135. }
  136. function parcourir_wori_bon($repertoire,$creche)
  137. {
  138. static $retour_rep = "";
  139. $le_repertoire = opendir($repertoire) or die("Erreur le repertoire $repertoire existe pas");
  140. while($fichier = @readdir($le_repertoire))
  141. {
  142. if ($fichier == "." || $fichier == "..") continue; // enlever les traitements inutile
  143. if(is_dir($repertoire.'/'.$fichier))
  144. {
  145. parcourir_repertoire($repertoire.'/'.$fichier,$creche);
  146. }
  147. else
  148. {
  149. if ( strpos($fichier , $creche) )
  150. {
  151. $retour_rep = $repertoire ."/". $fichier ;
  152. return $retour_rep ;
  153. }
  154. } // FIN DE if(is_dir($repertoire.'/'.$fichier)) {
  155. } // FIN DE while($fichier = @readdir($le_repertoire)) {
  156. closedir($le_repertoire);
  157. }
  158. function corrige ($nom) // // Mise en forme des accents
  159. {
  160. $retour = "" ;
  161. for ( $i = 0 ; $i < strlen($nom) ; $i ++){
  162. //echo $i . " ==>" . substr($nom, $i , 1) ."<==".ord(substr($nom, $i , 1))."== <br>" ;
  163. if (ord(substr($nom, $i , 1))>223 ) {
  164. //echo "chr234 ===".chr(234)."=="."&#".ord(substr($nom, $i , 1)).";"."== <br><br>";
  165. $retour = $retour . "&#".ord(substr($nom, $i , 1)).";" ;
  166. } else {
  167. $retour = $retour . substr($nom, $i , 1) ;
  168. }
  169. }
  170. return $retour ;
  171. }
  172. function ecrit($nom) // // Mise en forme des accents
  173. {
  174. $retour = "" ;
  175. for ( $i = 0 ; $i < strlen($nom) ; $i ++){
  176. //echo $i ." ==>" . $nom[$i] ."<==". ord( $nom[$i] ) ."== " ;
  177. //echo "i + 1 ==" . ($i + 1) ." ==>" . $nom[$i+1] ."<==". ord( $nom[$i+1] )."<br>\n" ;
  178. if ( ord( $nom[$i] ) == 195 ){
  179. // $carac = "&#". (ord( $nom[$i +1] ) + 64 ).";" ;
  180. $carac = chr( (ord( $nom[$i +1] ) + 64 ) ) ;
  181. // echo "nouveau $i exa ==>" . (ord( $nom[$i +1] ) + 64 ) ."<==". $carac ."== <br>\n" ;
  182. $retour = $retour . $carac ;
  183. $i++ ;
  184. } else {
  185. $retour = $retour . $nom[$i] ;
  186. }
  187. }
  188. return $retour ;
  189. }
  190. function ecrit_abc($nom) // // Mise en forme des accents
  191. {
  192. $retour = "" ;
  193. for ( $i = 0 ; $i < strlen($nom) ; $i ++){
  194. //echo $i ." ==>" . $nom[$i] ."<==". ord( $nom[$i] ) ."== " ;
  195. //echo "i + 1 ==" . ($i + 1) ." ==>" . $nom[$i+1] ."<==". ord( $nom[$i+1] )."<br>\n" ;
  196. if ( (ord( $nom[$i] ) == 194) or (ord( $nom[$i] ) == 195) ){
  197. if ( ord( $nom[$i] ) == 194 ){ $car = (ord( $nom[$i +1] ) ) ; } /// CAS DE L'APOSTROPHE
  198. if ( ord( $nom[$i] ) == 195 ){ $car = (ord( $nom[$i +1] ) + 64 ) ; } /// CAS DES ACCENT
  199. $carac = html_entity_decode( "&#".$car.";") ;
  200. // $carac = "&#". (ord( $nom[$i +1] ) + 64 ).";" ; chr
  201. $retour = $retour . $carac ;
  202. $i++ ;
  203. } else {
  204. $retour = $retour . $nom[$i] ;
  205. }
  206. }
  207. return $retour ;
  208. }
  209. function ecrit_def($nom) // // Mise en forme des accents
  210. {
  211. $retour = "" ;
  212. for ( $i = 0 ; $i < strlen($nom) ; $i ++){
  213. if ( (ord( $nom[$i] ) == 194) or (ord( $nom[$i] ) == 195) ){
  214. if ( ord( $nom[$i] ) == 194 ){ $car = (ord( $nom[$i +1] ) ) ; } /// CAS DE L'APOSTROPHE
  215. if ( ord( $nom[$i] ) == 195 ){ $car = (ord( $nom[$i +1] ) + 64 ) ; } /// CAS DES ACCENT
  216. $carac = chr($car) ;
  217. $retour = $retour . $carac ;
  218. $i++ ;
  219. } else {
  220. $retour = $retour . $nom[$i] ;
  221. }
  222. }
  223. return $retour ;
  224. }
  225. $sansacc = array( "a", "a", "e", "e", "e", "e", "i", "i", "o", "u", "u", "c", "euro", "'", "o", "«", "»");
  226. $accent = array( "à", "â", "é", "è", "ê", "ë", "î", "ï", "ô", "ù", "û", "ç", "€", "'", "°", "«", "»");
  227. $bonacc = array( "&agrave;", "&acirc;", "&eacute;", "&egrave;", "&ecirc;", "&euml;", "&icirc;", "&iuml;", "&ocirc;", "&ugrave;", "&ucirc;", "&ccedil;", "&euro;" , "&#039;", "&deg;", "&laquo;", "&raquo;");
  228. function accentb($phrase) {
  229. // // Mise en forme des accents
  230. $accent = $GLOBALS['accent'] ;
  231. $bonacc = $GLOBALS['bonacc'] ;
  232. $newphrase = str_replace($accent, $bonacc, $phrase);
  233. return $newphrase ;
  234. }
  235. function accentsans($phrase) {
  236. $accent = $GLOBALS['accent'] ;
  237. $sansacc = $GLOBALS['sansacc'];
  238. // // Mise en forme des accents
  239. $newphrase = str_replace($accent, $sansacc, $phrase);
  240. return $newphrase ;
  241. }
  242. ?>