php和asp對象的等價關係
1)寫HTML
asp: Response.Write(str)
php: print $str;
echo $str;
print_r $debug_str;
2) Form, Cookie and QueryString變量
asp: 可以用Request object.
php: 這些變量是自動提供的作為一個全局變量,如果在PHP.ini文件中這樣配置的話:
variables_order="EGPCS"
register_globals=On
為了安全,我將不允許register_globals (設置它為OFF). 然後變量僅僅在數組中使用:
$HTTP_POST_VARS, $HTTP_COOKIE_VARS and $HTTP_GET_VARS.
3)Redirecting to another location
asp: Response.Redirect(url)
php: Header("Location: $url");
4) Cookie 處理
asp: Response.Cookies(cookiename) = newval
avar = Request.Cookies(cookiename)
php: setcookie($cookiename, $newval);
$avar = $HTTP_COOKIE_VARS[$cookiename];
5)Application變量
asp: Application(appvarname)
php: 不提供,可以用數據庫模擬
6)Session 變量
asp: Session(sessionname) = newval
avar = Session(sessionname)
php: 在PHP4或以後的版本中, 我們確定變量作為一個session在
session_register($sessionname), 然後,我們調用session_start( )
在開始使用的.php 頁恢復session變量值.
例如:
session_register("avar");
$avar = 99;
session_start();
print $avar;
7)Form 變量
asp: Request.Form("formvar")
Request.QueryString("getvar")
php: $HTTP_POST_VARS["formvar"];
$HTTP_GET_VARS["getvar"];
GET and POST 變量可以交替的自動地修改到PHP變量,這是不安全地方法。
8)Server 變量
asp: 這有許多服務器變量,可以看ASP文檔. 一個例子:
Request.ServerVariables("HTTP_HOST
php: 作為ISAPI模式, 服務器變量存儲在$HTTP_SERVER_VARS數組裡。
作為CGI, 它們存貯在環境變量裡, 用$HTTP_ENV_VARS數組或getenv( )
可以得到。一個例子:
$HTTP_SERVER_VARS["HTTP_HOST"] using ISAPI module
$HTTP_ENV_VARS["HTTP_HOST"] using CGI module
9)數據庫訪問
asp: 一般用ado技術
php: ADO可以使用adodb庫來模擬,這個庫等價與ado.
限制是,目前支持只讀性光標和前滾光標.
(註解)也可以直接調用com庫,看我的文章。
10)Buffering
asp: Response.Buffer = true
Response.Write("abc");
Response.Flush()
php: ob_start();
print "abc";
ob_end_flush();
11) Script Timeout
asp: 時間級是秒級:
Server.ScriptTimeout(240)
php: 時間級是秒級:
set_time_limit(240);
2009年6月1日 星期一
Regular Expression (RegExp) 正規表達式(正則表達式)
Tab的空白:\t
換行:\n
不分大小寫:(?i)(字串)
一輩子受用的 Regular Expressions - 樣式比對 - 精華區 : 台灣PHP聯盟[ Taiwan PHP User Group ]
JavaScript replace new RegExp_一个人的精彩
石頭閒語:Regular Expression (RegExp) in JavaScript - 樂多日誌
Javascript Regex 的 字串比對(Match) 與 取代(Replace) | Tsung's Blog
JavaScript Kit- RegExp (regular expression) object
Regular Expression 在 replace 的應用
Regular Expression心得報告
換行:\n
不分大小寫:(?i)(字串)
在 regular expression 中用括號括起來的部份視為一個群組,
而在 replacement 中可用 $ 加數字來帶入該群組對應的實際值,
所以最後才會有 "-$1-" , ( $1 代表第一個群組 )
更簡單的 寫法其實用 String.replaceAll() 就可以做到
1
2String s = "123abc456AbC789";
String s2 = s.replaceAll("(?i)(abc)","-$1-");
(?i) 代表不分大小寫, 其他的就跟前述一樣囉
^
寫在 pattern 第一個位置時,表示其後一符號必須出現在字串開頭的位置。寫在 pattern 中間位置時則為否定之意,表示字串中不可有 ^ 之後一符號的內容。$
寫在 pattern 最後一個位置時,表示其前一符號必須出現在字串尾端的位置。寫在 pattern 中時無特別意義。*
表示字串中有 0 到無數個其前一符號的內容。+
表示字串中有 1 到無數個其前一符號的內容。?
表示字串中有 0 到 1個其前一符號的內容。{ }
表示前一符號在字串中的重覆次數。例如/A{2}/表示 'A' 重覆兩次 (即 'AA') ;/A{2,}/表示字串含有 2 到無數多個 'A' ;/A{2,5}/表示含有 2 到 5 個 'A' 。.
表示一個任意字元。[ ]
表示字串含有括號中任一字元的內容。可以-表示一組連續字元,例如/[a-z]/, /[0-9]/。注意, [] 僅代表一個字元,例如/[abc]/表示 'a' 或 'b' 或 'c' ,而不是 'abc' 。( )
表示一個 sub pattern ,符合 sub pattern 的字串內容會被存放在匹配陣列中,並依序指派數字代表此 sub pattern 。可以此數字在 pattern 的其他地方引用內容,例如/The h([0-9]) means Title (\1)/表示第 1 個 sub pattern 是 0 到 9 的任一字元,而 \1 表示匹配的內容。故 'The h1 means Title 1', 'The h2 means Title 2' 到 'The h9 means Title 9' 符合規則。\
表示轉義 (escaping) ,將其後的字元視為一般字元。例如要表示字串中含有 '/' 字元時,就必須寫作/\//。|
「或」意,字串中含有 '|' 之前一符號或後一符號的內容。例如/image\.(jpg|png)/表示 'image.jpg' 或 'image.png' 。通常會用 () 括住 '|' 的前後符號。\d
表示任何一個數字,意同 [0-9] 。\D
表示任何一個非數字,意同 [^0-9] 。\w
表示任何一個字元與數字以及 '_' ,意同 [a-zA-Z0-9_] 。\W
表示任何一個 \w 以外的字元。\s
表示任何一個空白符號,包括 \t, \v 等。\S
表示任何一個非空白符號。
尋找最多字元的字及最少字元的字(Greedy and Lazy)
當RE下要搜尋一個範圍的重複時(如”.*”),它通常會尋找最多字元的符合字,也就是Greedy matching。舉例來說。
32. a.*b (開始為a結束為b的最多字元的符合字)
若有一字串是”aabab”,使用上述RE所得到的符合字串就是”aabab”,因為這是尋找最多字元的字。有時希望是符合最少字元的字也就是lazy matching。只要將重覆前述項目的表加上問號(?)就可以把它們全部變成lazy matching。因此”*?”代表的就是重覆任意次數,但是使用最少重覆的次數來符合。舉個例子來說:
33. a.*?b (開始為a結束為b的最少字元的符合字)
若有一字串是”aabab”,使用上述RE第一個所得到的符合字串就是”aab”再來是”ab”,因為這是尋找最少字元的字。
*? 重覆任意次數,最少重覆次數為原則
+? 重覆至少一次,最少重覆次數為原則
?? 重覆零次或一次,最少重覆次數為原則
{n,m}? 重覆至少n次,但不超過m次,最少重覆次數為原則
{n,}? 重覆至少n次,最少重覆次數為原則
一輩子受用的 Regular Expressions - 樣式比對 - 精華區 : 台灣PHP聯盟[ Taiwan PHP User Group ]
JavaScript replace new RegExp_一个人的精彩
石頭閒語:Regular Expression (RegExp) in JavaScript - 樂多日誌
Javascript Regex 的 字串比對(Match) 與 取代(Replace) | Tsung's Blog
JavaScript Kit- RegExp (regular expression) object
Regular Expression 在 replace 的應用
Regular Expression心得報告
Javascript 字串處理 (String Operations)
Javascript 字串處理 (String Operations)
- 尋找字串(search)
stringObject.search(searchstring)
stringObject.search(尋找的字串)
大小寫必須相符
var str = "test String";
alert(str.search("Str"));
alert(str.search("str"));
輸出結果:5
輸出結果:-1
- 傳回字串內相符的字串(match)
無相符字串則傳回null,大小寫要相符
var str = "test String";
alert(str.match("TEST"));
alert(str.match("Str"));
輸出結果:null
輸出結果:Str - 取得字串長度(length)
var str = "test String";
alert(str.length);
輸出結果:11
- 尋找某字串在字串內的位置(indexOf)
stringObject.indexOf(searchvalue,fromindex)
stringObject.indexOf (尋找的字串,開始尋找的位置)
var str = "test String";
alert(str.indexOf("Str"));
alert(str.indexOf("Str",6));
輸出結果:5
輸出結果:-1
- 從後往前找某字串在字串內的位置(lastIndexOf)
stringObject.lastIndexOf(searchvalue,fromindex)
stringObject.lastIndexOf (尋找的字串,開始尋找的位置)
var str = "test String";
alert(str.lastIndexOf("Str"));
alert(str.lastIndexOf("Str",2));
alert(str.lastIndexOf("Str",10));
輸出結果:5
輸出結果:-1
輸出結果:5
- 變更英文字大小寫
toUpperCase() 大寫
toLowerCase() 小寫
var str = "test String";
alert(str.toUpperCase());
alert(str.toLowerCase());
輸出結果:TEST STRING
輸出結果:test string
- 傳回字串內某位置的字元(charAt)
stringObject.charAt(index)
位置由0開始
var str = "test String";
alert(str.charAt(3));
alert(str.charAt(7));
輸出結果:t
輸出結果:r
傳回參數中以Unicode值所代表的字元組成的字串(fromCharCode)
String.fromCharCode(numX,numX,...,numX)
alert(String.fromCharCode(65,66,67));
輸出結果:ABC
- 傳回字串內某位置區間的字串(substring & substr)
stringObject.substring(start,stop)
stringObject.substring(開始位置,結束位置)
stringObject.substr(start,length)
stringObject.substr(開始位置,字串長度)
(開始位置)若為負數則由後往前數,但不適用於IE
alert("0123456789".substring(4,6))
alert("0123456789".substr(4,6))
輸出結果:45
輸出結果:456789
- 字串取代(replace)
stringObject.replace(findstring,newstring)
stringObject.replace(要找尋的字串,換成新的字串)
大小寫必須相符
var str = "test String";
alert(str.replace("string", "Text"));
alert(str.replace("String", "Text"));
輸出結果:test String
輸出結果:test Text
- 組合字串(concat)
stringObject.concat(stringA,stringB,...,stringX)
stringObject.concat(字串A,字串B,...,字串X)
var strA = "test ";
var strB = "String";
alert(str1.concat(str2));
輸出結果:test String
- 取得切割字串(slice)
stringObject.slice(start,end)
stringObject.slice(開始位置,結束位置)
var str = "test String";
alert(str.slice(5));
alert(str.slice(0,4));
輸出結果:String
輸出結果:test
- 分割字串(split)
stringObject.split(separator, howmany)
stringObject.split(分割字串, 分割後各字串的字元數)
var str = "test String";
alert(str.split(""));
alert(str.split(" ",4));
輸出結果:t,e,s,t, ,S,t,r,i,n,g
輸出結果:test,String
php中高效能清除HTML 標記、空白字符
php中高效能清除html
在字符截取時常會因為HTML格式發生意外,ASP是,PHP也是,如果是可預見的簡單HTML格式用replace就行了,對於文章正文這一類裡面可能包含所有的HTML格式,想高效點還是用下面的的,已測試
$search = array ("'
JavaScript 中的 "foreach" 語法
JavaScript 中的 "foreach" 語法
//變量聲明,方法一:假如 Object 未被擴展
//變量聲明,方法二:假如 Object 已被擴展
//賦值,以上兩種方法均可
//循環
//變量聲明,方法一:假如 Object 未被擴展
var arrTest = new Object();
//變量聲明,方法二:假如 Object 已被擴展
var arrTest;
//賦值,以上兩種方法均可
array['something'] = 'yay';
array['somethingelse'] = 'more';
//循環
for ( var key in arrTest ) {
alert(arrTest[key]);
}
訂閱:
文章 (Atom)