顯示具有 asp 標籤的文章。 顯示所有文章
顯示具有 asp 標籤的文章。 顯示所有文章

2012年1月17日

不用mono的xsp來跑asp.net的網頁程式

我還沒實際試過, 在 apache 下跑 asp.net 程式, 可參考 [在Ubuntu Apache2 跑 mod-mono
] 一文。


1. 安裝mod-mono套件
sudo apt-get install libapache2-mod-mono
2. 若你要使用asp.net 2.0要額外安裝以下套件(若不要就不用安裝)
sudo apt-get install mono-apache-server2
3. 啟用模組
sudo a2enmod mod_mono
4. 建立一個虛擬目錄為 monowebtest
ubuntu apache 預設的 root 目錄路徑為 /var/www ,在此目錄下建立 monowebtest => /var/www/monowebtest
5. 在Apache設定 monowebtest 虛擬目錄使用 mod-mono
開啟 /etc/apache2/apache2.conf 設定檔,設定以下內容:
# Momo ASP.net
MonoServerPath 『/usr/bin/mod-mono-server2″
MonoDebug monowebtest true
MonoSetEnv monowebtest MONO_IOMAP=all
MonoApplications monowebtest 『/monowebtest:/var/www/monowebtest』

Allow from all
Order allow,deny
MonoSetServerAlias monowebtest
SetHandler mono
SetOutputFilter DEFLATE
SetEnvIfNoCase Request_URI 『\.(?:gif|jpe?g|png)$』 no-gzip dont-vary


AddOutputFilterByType DEFLATE text/html text/plain text/xml text/javascript

6. 重啟Apache
sudo /etc/init.d/apache2 restart
7. 在 /var/www/monowebtest 目錄放置 asp.net 的專案或網頁,開啟流覽器鍵入
http://127.0.0.1/monowebtest/Default.aspx 即可看到正常顯示的 aspx 網頁
參考文件:
http://www.mono-project.com/Mod_mono
https://help.ubuntu.com/community/ModMono

2010年5月10日

ASP 中的 codepage

放在 *.asp 的第1行:
<%@LANGUAGE="VBSCRIPT" CODEPAGE="936"%>
936代表是簡體中文,而950代表繁體中文,65001就是 UTF-8 編碼了


若你的 *.asp 是 UTF-8 編碼, 則加入以下的程式碼在第1行, 就不會有亂碼了

<%@LANGUAGE="VBSCRIPT" CODEPAGE="65001"%>

2010年4月23日

Regular Expression 語法

在很多程式中見到看起來很怪的語法, 中文稱為「正規表達式 」,例如
 
([0-9]{4})-([0-9]{1,2})-([0-9]{1,2})
代表 yyyy-mm-dd 的日期格式, 或
 
a[0-9]*\.c
代表 a12.c,a932.c 等以 a 開頭, 以 .c 結尾, 中間只能是數字, 的所有字串
還滿聰明的一個做法
 
參見
特別要抓 unicode 中文的話, 看這裡

 
  它使用「/xxx/u」,在最後加上「u」,以這方式支援 UTF-8,
 
#!/usr/bin/php -q
$a = "def:123:這是:AB=你好!";
$pattern = 
'/123:([\x{4e00}-\x{9fff}]+):[A-B]*/u';
preg_match($pattern, 
$a,$match);
echo $match[0];
?> 
 
ASP 中使用:
例 1
Function RegExpTest(patrn, strng) 
   Dim regEx, retVal ' 建立變量。 
   Set regEx = New RegExp ' 建立正則表達式。 
   regEx.Pattern = patrn ' 設置模式。 
   regEx.IgnoreCase = False ' 設置是否區分大小寫。 
   retVal = regEx.Test(strng) ' 執行搜索測試。 
   If retVal Then 
      RegExpTest = "找到一個或多個匹配。" 
   Else 
      RegExpTest = "未找到匹配。" 
   End If 
End Function  
 
例 2
 
s1="This equation {x} + {y} = {x+y}
"
x=100
y=200
response.write "====>" & Var2Value(s1) & "
" 
function Var2Value(var_name)
   Var2Value = Txt2Value(var_name, 1)
end Function
function Txt2Value(str, level)
   dim regEx, Matches, Result
   Set regEx = new RegExp
   select case level
          case 0 regEx.Pattern = "\{([\w\(\)]+)\}" '變數名有效判斷
          case 1 regEx.Pattern = "\{([\w+\-\*/\\<>=\(\)]+)\}" '變數名及運算符號有效
          'case 2 regEx.Pattern = "\{([\w\s\(\)]+)\}" '除換行符外的所有字符有效
          case else exit function
   end select
   regEx.IgnoreCase = true
   regEx.Global = true
   Set Matches = regEx.Execute(str)
   Result = str
   'response.write Matches.Count
   For Each Match In Matches
      Result = Replace(Result, Match.Value, GetVar(Match.SubMatches(0)))
   Next
   set Matches = nothing
   set regEx = nothing
   Txt2Value = Result
end function