$n){ // $names[$k] = name_collision_evasion($ls, $n); // } // // print_r($names); // // $names = array("a", "b", "c", "c_2", "d", "d_2", "d_3", "d_8"); // function name_collision_evasion(&$nameList, $name) { //名前から重複用のサブキーを取得 $sep = "_"; $idx = mb_strrpos($name, $sep); if(!is_null($idx)){ $base_name = mb_substr($name, 0, $idx-0); $sub = mb_substr($name, $idx + mb_strlen($sep)); if(is_numstr($sub)) { $sub = intval($sub); } else { $base_name = $name; $sub = 1; } } else { $base_name = $name; $sub = 1; } //重複していない場合はそのまま返す if($nameList[$base_name] < $sub) { $nameList[$base_name] = $sub; return $name; } $sub = ++$nameList[$base_name]; return $base_name.$sep.$sub; } function fmt0000($n){ $n=intval($n); return ($n<1000?"0":"").($n<100?"0":"").($n<10?"0":"").$n; } function fmt00($n){ $n=intval($n); return ($n<10?"0":"").$n; } function string_bind_list($fmt, $startTag="{", $endTag="}"){ $ret = array(); $findPos = 0; $startTagLen = mb_strlen($startTag); $endTagLen = mb_strlen($endTag); for(;;){ $startPos = mb_strpos($fmt, $startTag, $findPos); if(!is_int($startPos)){ $ret[] = mb_substr($fmt, $findPos); break; } $endPos = mb_strpos($fmt, $endTag, $startPos); if(!is_int($endPos)){ $ret[] = mb_substr($fmt, $findPos); break; } $ret[] = mb_substr($fmt, $findPos, $startPos-($findPos) ); $ret[] = array("bind" => mb_substr($fmt, $startPos+$startTagLen, $endPos-($startPos+$startTagLen)) ); $findPos = $endPos+$endTagLen; } return $ret; } /** * 文字列を指定の長さで切る。12345→123.. * @param string $str 対象文字列 * @param int $len 切る文字数 * @return string 生成文字列 */ function strOmission($str,$len){ if(mb_strlen($str) > $len){ return mb_substr($str, 0, $len).".."; }else{ return $str; } } /** * POSTもしくはGETで送られたデータを取得する。 * 無ければ、空文字を返す * @param string $keyNM Post ot Getで投げられた際のname名称 * @return string */ function getParam($keyNM){ $retVal = ""; if(isset($_POST[$keyNM])){ $retVal = $_POST[$keyNM];} if(isset($_GET[$keyNM])){ $retVal = $_GET[$keyNM];} return $retVal; } /** * カレンダー用の日付セットを配列で返す * @param string $year 年(4桁) * @param string $month 月(2桁) * @return string{} */ function _cal($year, $month){ // 年月から月初め(ついたち)の曜日を求める $week= date("w", mktime(0,0,0,$month,1,$year)); // 月初めが日曜じゃない(途中曜日)分をヌル値で埋める if ($week) foreach (range(0, $week-1) as $pad){ $cal[]= null; } // 年月からその月の日数を求める $days= date("t", mktime(0,0,0,$month,1,$year)); // その年月の日付を配列にセット foreach (range(1, $days) as $set) $cal[]= $set; // 週の残りがあればヌル値で埋める if (count($cal) % 7) foreach (range((count($cal) % 7), 6) as $i) $cal[]= null; //print_r($cal); return $cal; } ?>