$v0) { $rtn = ''; $funcname = $temp_array[2][$key]; $funcarg = $temp_array[3][$key]; switch (strtolower($funcname)) { case '#fgalsw': $rtn = mgext_func_fgalsw($funcarg); break; case '#fgalrand': $rtn = mgext_func_fgalrand($funcarg); break; default: break; } $search = $temp_array[1][$key]; $replace = $rtn; $mystring = str_replace ($search, $replace, $mystring); } } } return $mystring; } function mgext_func_fgalsw($funcarg) { // fgalsw function // #fgalsw($defgal,$swkind,<$num1=$gal1,$num2=$gal2...>) $arytmp = explode(',', $funcarg); $strgal = ''; if(is_array($arytmp)) { $strswkind = ''; $arydata = array(); foreach($arytmp as $key => $val) { if ($key == 0) $strgal = $val; else if ($key == 1) $strswkind = $val; else { list($tmp_key, $tmp_data) = explode('=', $val); $arydata[$tmp_key] = $tmp_data; } } $nowsw = -1; $arygetdate = getdate(); switch (strtolower($strswkind)) { case 'month': $nowsw = $arygetdate['mon']; break; case 'hour': $nowsw = $arygetdate['hours']; break; case 'wday': $nowsw = $arygetdate['wday']; break; } if (!($nowsw < 0)) { if (isset($arydata[$nowsw])) $strgal = $arydata[$nowsw]; } } return $strgal; } function mgext_func_fgalrand($funcarg) { // fgalsw function // #fgalrand(<$gal1,$gal2...>) $arytmp = explode(',', $funcarg); $strgal = ''; if(is_array($arytmp)) { $index = mt_rand(0,count($arytmp)-1); $strgal = $arytmp[$index]; } return $strgal; } //################################################################# ?>