動態的將責任附加到對象上 想要擴展功能 裝飾者提供有別於繼承的另一種選擇
設計原則 : 對擴展開放 對修改關閉
例子:java.io and 星巴克咖啡 有許多咖啡 以及裝飾 的調味 如:奶泡 豆漿 牛奶等...
2011年4月15日 星期五
2011年3月9日 星期三
C# ArrayList 方法 Remove 小心被騙
假設我有一個陣列String[] = new String[]{"1","2","3","1"};我想要移除 "1"先把陣列轉成ArrayList 然後 使用 remove 此方法後 意外發現 他只刪除第一個 "1" 在索引4的 "1" 並沒有被刪除所以下次使用 remove方法 時候 注意 不要被騙了
範例 不使用remove
最後印出 12,3,66,1223,12334,56, 才是正確
範例 不使用remove
ArrayList ary = new ArrayList();
String SaNo = "12,3,4,66,1223,4,12334,56";
String[] SaNoArr = SaNo.Split(',');
if (Array.IndexOf(SaNoArr, "4") > -1)
{
for (int i = 0; i < SaNoArr.Length; i++)
{
ary.Add(SaNoArr[i]);
}
for (int i = 0; i < ary.Count; i++)
{
if (ary[i].ToString().Equals("4"))
ary.RemoveAt(i);
}
SaNoArr = (String[])ary.ToArray(typeof(String));
for (int i = 0; i < SaNoArr.Length; i++)
{
Response.Write(SaNoArr[i]+",");
}
}
最後印出 12,3,66,1223,12334,56, 才是正確
2011年1月19日 星期三
PHP 防止Sql Injection 基本方法
function SqlInjection_Protect()
{
if( !get_magic_quotes_gpc() )
{
if( is_array($_GET) )
{
while( list($k, $v) = each($_GET) )
{
if( is_array($_GET[$k]) )
{
while( list($k2, $v2) = each($_GET[$k]) )
{
$_GET[$k][$k2] = addslashes($v2);
}
@reset($_GET[$k]);
}
else
{
$_GET[$k] = addslashes($v);
}
}
@reset($_GET);
}
if( is_array($_POST) )
{
while( list($k, $v) = each($_POST) )
{
if( is_array($_POST[$k]) )
{
while( list($k2, $v2) = each($_POST[$k]) )
{
$_POST[$k][$k2] = addslashes($v2);
}
@reset($_POST[$k]);
}
else
{
$_POST[$k] = addslashes($v);
}
}
@reset($_POST);
}
if( is_array($_COOKIE) )
{
while( list($k, $v) = each($_COOKIE) )
{
if( is_array($_COOKIE[$k]) )
{
while( list($k2, $v2) = each($_COOKIE[$k]) )
{
$_COOKIE[$k][$k2] = addslashes($v2);
}
@reset($_COOKIE[$k]);
}
else
{
$_COOKIE[$k] = addslashes($v);
}
}
@reset($_COOKIE);
}
}
}
function SqlInjection_Protect1($content){
//if $content is an array
if (is_array($content))
{
foreach ($content as $key=>$value)
{
$content[$key] = mysql_escape_string($value);
}
}
else
{
//if $content is not an array
$content = mysql_escape_string($content);
}
return $content;
}
2011年1月12日 星期三
PHP list
//取出陣列元素 照順序
$my_array = array("Dog","Cat","Horse");
list($a, $b, $c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.
";
list($a,,$c) = $my_array;
echo "I have several animals, a $a, a $b and a $c.";
2011年1月6日 星期四
C# Cookie Domain
//刪除mycook
HttpCookie aCookie;
string cookieName;
cookieName = "MyCook";
aCookie = new HttpCookie(cookieName);
aCookie.Expires = DateTime.Now.AddDays(-1);
Response.Cookies.Add(aCookie);
//新增mycook
HttpCookie cookie = new HttpCookie("MyCook");
DateTime dt=DateTime.Now;
TimeSpan ts = new TimeSpan(0,1,0,0,0);
cookie.Expires = dt.Add(ts);
cookie.Values.Add("userid1","123123");
cookie.Domain = ".easytravel.com.tw";
Response.Cookies.Add(cookie);
Response.AppendCookie(cookie);
//印出mycook
HttpCookie cokie = new HttpCookie("MyCook");//初使化
if (Request.Cookies["MyCook"] != null)
{
Response.Write(Request.Cookies["MyCook"]["userid1"]);
}
訂閱:
文章 (Atom)