2011年1月27日 星期四

PHP限制顯示字數語法,中英文混雜時不亂碼

資料來源:http://tommy.ironman.tw/php-syntax-restrictions-in-words-in-english-and-chinese-will-not-garbled-mixed/


<?php
//裁切字串
function cut_content($a,$b){
    $a = strip_tags($a); //去除HTML標籤
    $sub_content = mb_substr($a, 0, $b, 'UTF-8'); //擷取子字串
    echo $sub_content//顯示處理後的摘要文字
    //顯示 "......"
    if (strlen($a) > strlen($sub_content)) echo "...";
}
 
//以上程式已經包裝起來,您可存放在例如:function.php網頁
//往後只要使用include("function.php");
//加上 cut_content($a,$b);即可,不需每次撰寫.
//$a代表欲裁切內容.
//$b代表欲裁切字數(字元數)
?>

2011年1月16日 星期日

ASP儲存遠端圖片至網站

資料來源:http://www.pro-soho.com/Blog/article.asp?id=274

<%
'先下載遠端圖片
url="http://www.im286.com/images/im286/logo.gif" '遠端圖片位址
savepath="D:\photo\" '保存路徑
'為檔重命名
randomize
ranNum=int(999*rnd)
filename=year(now)&month(now)&day(now)&hour(now)&minute(now)&second(now)&ranNum
'為檔重命名結束
set xmlhttp=server.createobject("Microsoft.XMLHTTP")
xmlhttp.open "get",url,false
xmlhttp.send
img = xmlhttp.ResponseBody
set xmlhttp=nothing
set objAdostream=server.createobject("ADODB.Stream")
objAdostream.Open()
objAdostream.type=1
objAdostream.Write(img)
objAdostream.SaveToFile(savepath&filename&".jpg")
objAdostream.SetEOS
set objAdostream=nothing
'圖下載結束
Set Upload = Server.CreateObject("Persits.Upload") '打開物件
Set File = Upload.OpenFile(savepath&filename&".jpg") '打開已經保存的檔

If File.ImageType <> "JPG" and File.ImageType <> "GIF" and File.ImageType <> "BMP" and File.ImageType <> "PNG" Then
Upload.DeleteFile savepath&filename&".jpg" '如果格式不正確就刪除這張已下載的圖片
response.write "錯誤的圖片格式"
end if
'登出實例
Set Upload = nothing
Set File = nothing
%>

2011年1月13日 星期四

【在 Windows XP Home Edition 上安裝 IIS 及相關設定】

天底下事情無奇不有,當然也會遇到XP Home Editon要跑IIS的情況.
雖然最後還是以升級成XPP來做結束,但還是記錄一下找到的資料.
最後得到一個體認,有些東西還是不要硬來的好.花時間又達不到效果.....

資料來源:http://fangsblog.pixnet.net/blog/post/21731807

1.準備 Windows 2000 Professional 光碟放入光碟機
2.準備XP Home Edition 安裝光碟的 i386 目錄 (可放在硬碟中)
3.編輯 C:\Windows\inf\sysoc.inf,
將: iis=iis.dll,OcEntry,iis.inf,hide,7
改成: iis=iis2.dll,OcEntry,iis2.inf,,7
(注意當中的 hide 一定要去掉,否則會看不到這個項目 )

4.複製 Win2K CD 的 I386\IIS.DL_ 和 IIS.IN_ 到暫存目錄(例如:c:\tmp),
並且以 DOS command 執行以下兩行指令,將之解壓縮展開:
expand IIS.DL_ iis2.dll
expand IIS.IN_ iis2.inf

5. 將上述解開的檔案分別複製到:
C:\Windows\inf\iis2.inf
C:\Windows\system32\Setup\iis2.dll


6. 開啟 控制台 -> 新增或移除程式 -> 新增移除 Windows 元件,
這時候就可以看到 Internet Information Services 的選項了!
按照需求勾選要新增的服務。建議先以 WWW 為主

7. 開始安裝後,會提示放入 Windiows 2000 的光碟,請指向光碟機的 I386 目錄。


8.當提示放入 XP Home Edition 光碟時,可以指向步驟 2 的 I386 目錄。
請注意,如果提示需要 IMS CAB (有安裝 SMTP 服務時),
並不是 Win2K 的檔案,而是 XP Home Edition 的 IMS.CAB。

9. 安裝完畢,先開啟「預設的Web 站台」→「內容」→「目錄安全性設定」
→點選「編輯」按鈕來變更匿名存取的設定→取消「允許IIS來控制密碼」的選項→連按數次確定即可

10.試著開啟 http://localhost

11.我的經驗, web 是啟動了,但是出現超討厭的HTTP 500 - 內部伺服器錯誤

12.檢查 DTC (Distributed Transaction Coordinator) service 狀態,試著啟動,若無法啟動,
請在command mode 執行以下步驟
cd %windir%\system32\inetsrv
rundll32 wamreg.dll, CreateIISPackage
regsvr32 asptxn.dll

執行完畢重新開機,並把 DTC 服務啟動


13.再試著開啟 http://localhost ,若還是出現 HTTP 500 ,開啟「事件檢視器」→「系統」,
看錯誤是否為事件ID: 10016,來源DCOM,是的話請依以下步驟修改


14. log中會有一段『....應用程式特定 權限設定無法將含有 CLSID {一長串機碼}....的 COM 伺服器應用程式的 本機 啟用 權限授予使用者 user_name』, 依照微軟官方文件,執行 regedit,找到 HKEY_CLASSES_ROOT\CLSID\{長串機碼},點選右邊名稱為『(預設值)』的『資料』為何。
像我自己電腦設定顯示的是「 IIS Admin Service」

15.打開「控制台」→「系統管理工具」→「元件服務」。
進入後點選「元件服務」→「電腦」→「我的電腦」→「DCOM 設定」→
打開14 步驟所述的值(IIS Admin Service ),按右鍵→「內容」

16.打開「安全設定」→「啟動和啟用權限」→
把log 中的 user_name 帳號加入,並給予適當權限(我是把本機/遠端的啟動/啟用權限全開了)

17.重新開啟 http://localhost .....終於大功告成。

18.若要執行 asp.net 的程式,也需依照以上14~15的步驟,
把本機的 ASPNET 帳號,設定對IIS Admin Service 元件有權限啟用。

2011年1月11日 星期二

asp中對ip進行過濾限制函數

資料來源:http://www.code-club.idv.tw/index.php?action=index&run=article_read&ClassID=3&ArticleID=1038


<%
'獲取訪問者的地址
ip=Request.ServerVariables("REMOTE_ADDR")


'允許的IP地址段為10.0.0.0?10.68.63.255
allowip1="10.0.0.0"
allowip2="10.68.10.71"

response.write checkip(ip,allowip1,allowip2)


function checkip(ip,allowip1,allowip2)
dim check(4)
checkip=false
ipstr=split(ip,".")
allow1=split(allowip1,".")
allow2=split(allowip2,".")
if cint(allow1(0))>cint(allow2(0)) then '判斷IP地址段是否合法
response.write "IP地址段出錯!"
exit function
end if
for i=0 to ubound(ipstr)
if cint(allow1(i))<cint(allow2(i)) then
if cint(allow1(i))=cint(ipstr(i)) then
check(i)=true
checkip=true
exit for
else
if cint(ipstr(i))<cint(allow2(i)) then
check(i)=true
checkip=true
exit for
else
if cint(ipstr(i))>cint(allow2(i)) then
check(i)=false
checkip=false
exit for
else
check(i)=true
checkip=true
end if
end if
end if
else
if cint(allow1(i))>cint(ipstr(i)) or cint(allow1(i))<cint(ipstr(i)) then
check(i)=false
checkip=false
if i<>ubound(ipstr) then
exit for
end if
else
check(i)=true
end if
end if
next

if (check(0)=true and check(1)=true and check(2)=true and check(3)=false) and (cint(allow2(2))>cint(ipstr(2))) then
checkip=true
end if

end function
%>

2011年1月10日 星期一

解決javascript的window.close()在IE7會有提示的問題

資料來源:http://blog.blueshop.com.tw/hent/archive/2008/01/04/53939.aspx

<script   language=javascript>
        window.opener=null;
        window.open("","_self");
        window.close();
</script>

2011年1月9日 星期日

64位Windows 2008連線Access資料庫錯誤的排除方式

64位Windows 2008連線Access資料庫錯誤的排除方式

 問題:ASP連接Access資料庫時顯示:找不到提供者。它可能未被正確安裝

解決方法:
1.執行->%SystemRoot%\SysWow64\odbcad32.exe,進行ODBC的相關設定.
2.把DefaultAppPool進階設定中的「啟用32位應用程式」設定為「True」

參考資源:
http://www.bisql.net/2010/08/32-bit-odbc-drivers-in-windows-server-2008-r2/

2011年1月5日 星期三

[Google Map]自訂標籤圖示(GIcon)

資料來源:http://klcin.tw/net/google-map-gicon


如果我們能在地圖上標上加油站之類的圖示就能更直覺的表達訊息。

GIcon

  • GIcon 標籤的圖示
    • .image 圖示的網址
    • .iconSize 大小,如 new GSize(16,16)
    • .iconAnchor 定位,如 new GPoint(8,8)
    • .infoWindowAnchor 訊息視窗定位,如 new GPoint(8, 8)
      若沒有指定會無法顯示訊息視窗

程式碼

01.google.load("maps""2.x");
02.google.setOnLoadCallback(initialize);
03. 
04.var map = null;
05.function initialize() {
06.// 檢查瀏覽器是否可使用 Google Map API
07.if ( GBrowserIsCompatible() ) {
08.map = new google.maps.Map2(document.getElementById('map'));
09.// 設定地圖中心點
10.map.setCenter(new GLatLng(25.036772,121.520269), 12);
11. 
12.addSite(map,12,'中山',25.062361,121.526194,'台北市中山區林森北路511號',1);
13.addSite(map,13,'萬華',25.030000,121.490556,'台北市萬華區莒光路315號',2);
14.addSite(map,14,'古亭',25.020833,121.528611,'台北市中正區羅斯福路三段153號',3);
15. 
16.// if
17.else {
18.alert('您的瀏覽器不支援Google Map');
19.// else
20.}
21. 
22.function addSite(map, siteCode, siteDesc, lat, lng, address, type) {
23.var icon=new GIcon();
24.icon.image="images/"+type+".gif";
25.icon.iconSize = new GSize(16,16);
26.icon.iconAnchor = new GPoint(8,8);
27.icon.infoWindowAnchor = new GPoint(8, 8);
28. 
29.var mark = new GMarker(
30.new GLatLng(lat,lng),
31.{icon:icon, title:siteDesc}
32.);
33.map.addOverlay(mark);
34.GEvent.addListener(mark, "click"function() {mark.openInfoWindowHtml('地址:'+address);});
35.}