Changeset 15078 for branches/feature-module-update/data/lib/glib.php
- Timestamp:
- 2007/07/20 15:58:59 (17 years ago)
- Location:
- branches/feature-module-update
- Files:
-
- 1 edited
- 2 copied
Legend:
- Unmodified
- Added
- Removed
-
branches/feature-module-update
-
Property
svn:ignore
set to
.cache
.settings
.projectOptions
-
Property
svn:ignore
set to
-
branches/feature-module-update/data/lib/glib.php
r12157 r15078 7 7 8 8 /*---------------------------------------------------------------------- 9 * [ ̾¾Î] gfDownloadCsv10 * [ ³µÍ×] °ú¿ô¥Ç¡¼¥¿¤òCSV¤È¤·¤Æ¡¢¥¯¥é¥¤¥¢¥ó¥È¤Ë¥À¥¦¥ó¥í¡¼¥É¤µ¤»¤ë11 * [ °ú¿ô] 1:¥Ø¥Ã¥Àʸ»úÎó 2:CSV¥Ç¡¼¥¿12 * [ ÌáÃÍ] -13 * [ °Í¸] -14 * [ Ãí¼á] °ú¿ô¤Ï£±¡¤£²¤È¤â¥«¥ó¥Þ¶èÀÚ¤ê¤Ë¤Ê¤Ã¤Æ¤¤¤ë¤³¤È9 * [名称] gfDownloadCsv 10 * [概要] 引数データをCSVとして、クライアントにダウンロードさせる 11 * [引数] 1:ヘッダ文字列 2:CSVデータ 12 * [戻値] - 13 * [依存] - 14 * [注釈] 引数は1,2ともカンマ区切りになっていること 15 15 *----------------------------------------------------------------------*/ 16 16 function gfDownloadCsv($header, $contents){ … … 18 18 $fiest_name = date("YmdHis") .".csv"; 19 19 20 /* HTTP ¥Ø¥Ã¥À¤Î½ÐÎÏ*/20 /* HTTPヘッダの出力 */ 21 21 Header("Content-disposition: attachment; filename=${fiest_name}"); 22 22 Header("Content-type: application/octet-stream; name=${fiest_name}"); 23 23 24 24 $return = $header.$contents; 25 if (mb_detect_encoding($return) == CHAR_CODE){ // ʸ»ú¥³¡¼¥ÉÊÑ´¹25 if (mb_detect_encoding($return) == CHAR_CODE){ //文字コード変換 26 26 $return = mb_convert_encoding($return,'SJIS',CHAR_CODE); 27 $return = str_replace( array( "\r\n", "\r" ), "\n", $return); // ²þ¹ÔÊýË¡¤ÎÅý°ì27 $return = str_replace( array( "\r\n", "\r" ), "\n", $return); // 改行方法の統一 28 28 } 29 29 echo $return; … … 31 31 32 32 /*---------------------------------------------------------------------- 33 * [ ̾¾Î] gfSetCsv34 * [ ³µÍ×] °ú¿ô¤ÎÇÛÎó¤òCSV·Á¼°¤ËÊÑ´¹¤¹¤ë35 * [ °ú¿ô] 1:CSV¤Ë¤¹¤ëÇÛÎó 2:°ú¿ô1¤¬Ï¢ÁÛÇÛÎó»þ¤Îź¤¨»ú¤ò»ØÄꤷ¤¿ÇÛÎó36 * [ ÌáÃÍ] CSV¥Ç¡¼¥¿37 * [ °Í¸] -38 * [ Ãí¼á] -33 * [名称] gfSetCsv 34 * [概要] 引数の配列をCSV形式に変換する 35 * [引数] 1:CSVにする配列 2:引数1が連想配列時の添え字を指定した配列 36 * [戻値] CSVデータ 37 * [依存] - 38 * [注釈] - 39 39 *----------------------------------------------------------------------*/ 40 40 function gfSetCsv( $array, $arrayIndex = "" ){ 41 // °ú¿ô$arrayIndex¤Ï¡¢$array¤¬Ï¢ÁÛÇÛÎó¤Î¤È¤¤Ëź¤¨»ú¤ò»ØÄꤷ¤Æ¤ä¤ë¤¿¤á¤Ë»ÈÍѤ¹¤ë41 //引数$arrayIndexは、$arrayが連想配列のときに添え字を指定してやるために使用する 42 42 43 43 $return = ""; … … 48 48 $return .= "\""; 49 49 if ( $arrayIndex ){ 50 $return .= mb_ereg_replace("<"," ¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\"";50 $return .= mb_ereg_replace("<","<",mb_ereg_replace( "\"","\"\"",$array[$i][$arrayIndex[$j]] )) ."\""; 51 51 } else { 52 $return .= mb_ereg_replace("<"," ¡ã",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\"";52 $return .= mb_ereg_replace("<","<",mb_ereg_replace( "\"","\"\"",$array[$i][$j] )) ."\""; 53 53 } 54 54 } … … 60 60 61 61 /*---------------------------------------------------------------------- 62 * [ ̾¾Î] gfGetAge63 * [ ³µÍ×] ÆüÉÕ¤è¤êǯÎð¤ò·×»»¤¹¤ë¡£64 * [ °ú¿ô] 1:ÆüÉÕʸ»úÎó(yyyy/mm/dd¡¢yyyy-mm-dd hh:mm:ssÅù)65 * [ ÌáÃÍ] ǯÎð¤Î¿ôÃÍ66 * [ °Í¸] -67 * [ Ãí¼á] -62 * [名称] gfGetAge 63 * [概要] 日付より年齢を計算する。 64 * [引数] 1:日付文字列(yyyy/mm/dd、yyyy-mm-dd hh:mm:ss等) 65 * [戻値] 年齢の数値 66 * [依存] - 67 * [注釈] - 68 68 *----------------------------------------------------------------------*/ 69 69 function gfGetAge($dbdate) … … 79 79 80 80 /*---------------------------------------------------------------------- 81 * [ ̾¾Î] gfDebugLog82 * [ ³µÍ×] ¥í¥°¥Õ¥¡¥¤¥ë¤ËÊÑ¿ô¤Î¾ÜºÙ¤ò½ÐÎϤ¹¤ë¡£83 * [ °ú¿ô] ÂоݤȤʤëÊÑ¿ô84 * [ ÌáÃÍ] ¤Ê¤·85 * [ °Í¸] gfPrintLog86 * [ Ãí¼á] -81 * [名称] gfDebugLog 82 * [概要] ログファイルに変数の詳細を出力する。 83 * [引数] 対象となる変数 84 * [戻値] なし 85 * [依存] gfPrintLog 86 * [注釈] - 87 87 *----------------------------------------------------------------------*/ 88 88 function gfDebugLog($obj){ … … 97 97 gfPrintLog("*** end Debug ***"); 98 98 99 // ¥í¥°¥Æ¡¼¥·¥ç¥ó99 // ログテーション 100 100 gfLogRotation(MAX_LOG_QUANTITY, MAX_LOG_SIZE, LOG_PATH); 101 101 } 102 102 103 103 /*---------------------------------------------------------------------- 104 * [ ̾¾Î] gfPrintLog105 * [ ³µÍ×] ¥í¥°¥Õ¥¡¥¤¥ë¤ËÆü»þ¡¢½èÍý¥Õ¥¡¥¤¥ë̾¡¢¥á¥Ã¥»¡¼¥¸¤ò½ÐÎÏ106 * [ °ú¿ô] ɽ¼¨¤·¤¿¤¤¥á¥Ã¥»¡¼¥¸107 * [ ÌáÃÍ] ¤Ê¤·108 * [ °Í¸] ¤Ê¤·109 * [ Ãí¼á] -104 * [名称] gfPrintLog 105 * [概要] ログファイルに日時、処理ファイル名、メッセージを出力 106 * [引数] 表示したいメッセージ 107 * [戻値] なし 108 * [依存] なし 109 * [注釈] - 110 110 *----------------------------------------------------------------------*/ 111 111 function gfPrintLog($mess, $path = '') { 112 // ÆüÉդμèÆÀ112 // 日付の取得 113 113 $today = date("Y/m/d H:i:s"); 114 // ½ÐÎϥѥ¹¤ÎºîÀ®114 // 出力パスの作成 115 115 if ($path == "") { 116 116 $path = LOG_PATH; 117 117 } 118 118 119 // ¥¨¥¹¥±¡¼¥×¤µ¤ì¤Æ¤¤¤ëʸ»ú¤ò¤â¤È¤ËÌ᤹119 // エスケープされている文字をもとに戻す 120 120 $trans_tbl = get_html_translation_table (HTML_ENTITIES); 121 121 $trans_tbl = array_flip ($trans_tbl); … … 128 128 } 129 129 130 // ¥í¥°¥Æ¡¼¥·¥ç¥ó130 // ログテーション 131 131 gfLogRotation(MAX_LOG_QUANTITY, MAX_LOG_SIZE, $path); 132 132 } 133 133 134 134 /** 135 * ¥í¥°¥í¡¼¥Æ¡¼¥·¥ç¥óµ¡Ç½135 * ログローテーション機能 136 136 * 137 * @param integer $max_log ºÇÂç¥Õ¥¡¥¤¥ë¿ô138 * @param integer $max_size ºÇÂ祵¥¤¥º139 * @param string $path ¥Õ¥¡¥¤¥ë¥Ñ¥¹140 * @return void ¤Ê¤·137 * @param integer $max_log 最大ファイル数 138 * @param integer $max_size 最大サイズ 139 * @param string $path ファイルパス 140 * @return void なし 141 141 */ 142 142 function gfLogRotation($max_log, $max_size, $path) { 143 143 144 // ¥Ç¥£¥ì¥¯¥È¥ê̾¤ò¼èÆÀ144 // ディレクトリ名を取得 145 145 $dirname = dirname($path); 146 // ¥Õ¥¡¥¤¥ë̾¤ò¼èÆÀ146 // ファイル名を取得 147 147 $basename = basename($path); 148 148 149 // ¥Õ¥¡¥¤¥ë¤¬ºÇÂ祵¥¤¥º¤òĶ¤¨¤Æ¤¤¤Ê¤¤¤«¥Á¥§¥Ã¥¯149 // ファイルが最大サイズを超えていないかチェック 150 150 if(filesize($path) > $max_size) { 151 151 if ($dh = opendir($dirname)) { 152 152 while (($file = readdir($dh)) !== false) { 153 // ¥í¥°¥í¡¼¥Æ¡¼¥·¥ç¥ó¤Ë¤ÆºîÀ®¤µ¤ì¤¿¥Õ¥¡¥¤¥ë¤ò¼èÆÀ153 // ログローテーションにて作成されたファイルを取得 154 154 if(ereg("^". $basename . "\." , $file)) { 155 155 $arrLog[] = $file; … … 157 157 } 158 158 159 // ¥Õ¥¡¥¤¥ë¥í¥°¤¬ºÇÂç¸Ä¿ô¤Ê¤é°Ê¾å¤Ê¤é¸Å¤¤¥Õ¥¡¥¤¥ë¤«¤éºï½ü¤¹¤ë159 // ファイルログが最大個数なら以上なら古いファイルから削除する 160 160 $count = count($arrLog); 161 161 if($count >= $max_log) { … … 166 166 } 167 167 168 // ¥í¥°¥Õ¥¡¥¤¥ë¤Îź¤¨»ú¤ò¤º¤é¤¹168 // ログファイルの添え字をずらす 169 169 $count = count($arrLog); 170 170 for($i = $count; 1 <= $i; $i--) { … … 177 177 $ret = copy($path, "$path.1"); 178 178 179 // ¿·µ¬¥í¥°¥Õ¥¡¥¤¥ë¤òºîÀ®179 // 新規ログファイルを作成 180 180 if($ret) { 181 181 unlink($path); … … 187 187 188 188 /*---------------------------------------------------------------------- 189 * [ ̾¾Î] gfMakePassword190 * [ ³µÍ×] ¥é¥ó¥À¥à¥Ñ¥¹¥ï¡¼¥ÉÀ¸À®¡Ê±Ñ¿ô»ú¡Ë191 * [ °ú¿ô] ¥Ñ¥¹¥ï¡¼¥É¤Î·å¿ô192 * [ ÌáÃÍ] ¥é¥ó¥À¥àÀ¸À®¤µ¤ì¤¿¥Ñ¥¹¥ï¡¼¥É193 * [ °Í¸] ¤Ê¤·194 * [ Ãí¼á] -189 * [名称] gfMakePassword 190 * [概要] ランダムパスワード生成(英数字) 191 * [引数] パスワードの桁数 192 * [戻値] ランダム生成されたパスワード 193 * [依存] なし 194 * [注釈] - 195 195 *----------------------------------------------------------------------*/ 196 196 function gfMakePassword($pwLength) { 197 197 198 // Íð¿ôɽ¤Î¥·¡¼¥É¤ò·èÄê198 // 乱数表のシードを決定 199 199 srand((double)microtime() * 54234853); 200 200 201 // ¥Ñ¥¹¥ï¡¼¥Éʸ»úÎó¤ÎÇÛÎó¤òºîÀ®201 // パスワード文字列の配列を作成 202 202 $character = "abcdefghkmnpqrstuvwxyzABCDEFGHJKLMNPQRSTUVWXYZ2345679"; 203 203 $pw = preg_split("//", $character, 0, PREG_SPLIT_NO_EMPTY); … … 212 212 213 213 /*---------------------------------------------------------------------- 214 * [ ̾¾Î] sf_explodeExt215 * [ ³µÍ×] ¥Õ¥¡¥¤¥ë¤Î³ÈÄ¥»Ò¼èÆÀ216 * [ °ú¿ô] ¥Õ¥¡¥¤¥ë̾217 * [ ÌáÃÍ] ³ÈÄ¥»Ò218 * [ °Í¸] ¤Ê¤·219 * [ Ãí¼á] -214 * [名称] sf_explodeExt 215 * [概要] ファイルの拡張子取得 216 * [引数] ファイル名 217 * [戻値] 拡張子 218 * [依存] なし 219 * [注釈] - 220 220 *----------------------------------------------------------------------*/ 221 221 function gf_explodeExt($fileName) { … … 228 228 229 229 /*---------------------------------------------------------------------------------------------------------------------- 230 * [ ̾¾Î] gfMailHeaderAddr231 * [ ³µÍ×] ÆþÎϤµ¤ì¤¿¥á¡¼¥ë¥¢¥É¥ì¥¹¤ò¥á¡¼¥ë´Ø¿ôÍѤΰ¸Àè¤ËÊÑ´¹232 * [ °ú¿ô] ¡Ö¥á¡¼¥ë¥¢¥É¥ì¥¹¡×¤Þ¤¿¤Ï¡Ö̾Á°<¥á¡¼¥ë¥¢¥É¥ì¥¹>¡×¡¢Ê£¿ô¥¢¥É¥ì¥¹»ØÄê»þ¤Ï¥«¥ó¥Þ¶èÀÚ¤ê¤Ç»ØÄꤹ¤ë¡£233 * [ ÌáÃÍ] ¡Ö¥á¡¼¥ë¥¢¥É¥ì¥¹¡×¤Þ¤¿¤Ï¡ÖJIS_MIME¤Ë¥³¡¼¥ÉÊÑ´¹¤·¤¿Ì¾Á° <¥á¡¼¥ë¥¢¥É¥ì¥¹>¡×¡¢Ê£¿ô¥¢¥É¥ì¥¹»ØÄê»þ¤Ï¥«¥ó¥Þ¶èÀÚ¤ê¤ÇÊֵѤ¹¤ë¡£234 * [ °Í¸] ¤Ê¤·235 * [ Ãí¼á] -230 * [名称] gfMailHeaderAddr 231 * [概要] 入力されたメールアドレスをメール関数用の宛先に変換 232 * [引数] 「メールアドレス」または「名前<メールアドレス>」、複数アドレス指定時はカンマ区切りで指定する。 233 * [戻値] 「メールアドレス」または「JIS_MIMEにコード変換した名前 <メールアドレス>」、複数アドレス指定時はカンマ区切りで返却する。 234 * [依存] なし 235 * [注釈] - 236 236 *----------------------------------------------------------------------------------------------------------------------*/ 237 237 238 238 function gfMailHeaderAddr($str) { 239 $addrs = explode(",", $str); // ¥¢¥É¥ì¥¹¤òÇÛÎó¤ËÆþ¤ì¤ë239 $addrs = explode(",", $str); //アドレスを配列に入れる 240 240 foreach ($addrs as $addr) { 241 241 if (preg_match("/^(.+)<(.+)>$/", $addr, $matches)) { 242 // °ú¿ô¤¬¡Ö̾Á°<¥á¡¼¥ë¥¢¥É¥ì¥¹>¡×¤Î¾ì¹ç242 //引数が「名前<メールアドレス>」の場合 243 243 $mailaddrs[] = mb_encode_mimeheader(trim($matches[1]))." <".trim($matches[2]).">"; 244 244 } else { 245 // ¥á¡¼¥ë¥¢¥É¥ì¥¹¤Î¤ß¤Î¾ì¹ç245 //メールアドレスのみの場合 246 246 $mailaddrs[] = trim($addr); 247 247 } 248 248 } 249 return implode(", ", $mailaddrs); // Ê£¿ô¥¢¥É¥ì¥¹¤Ï¥«¥ó¥Þ¶èÀÚ¤ê¤Ë¤¹¤ë249 return implode(", ", $mailaddrs); //複数アドレスはカンマ区切りにする 250 250 } 251 251 ?>
Note: See TracChangeset
for help on using the changeset viewer.