myAdBanner

2014年12月25日 星期四

excel urlencode function

Public Function UrlEncode(ByRef szString As String) As String

Dim szChar As String
Dim szTemp As String
Dim szCode As String
Dim szHex As String
Dim szBin As String
Dim iCount1 As Integer
Dim iCount2 As Integer
Dim iStrLen1 As Integer
Dim iStrLen2 As Integer
Dim lResult As Long
Dim lAscVal As Long
szString = Trim$(szString)
iStrLen1 = Len(szString)
For iCount1 = 1 To iStrLen1
    szChar = Mid$(szString, iCount1, 1)
    lAscVal = AscW(szChar)
    If lAscVal >= &H0 And lAscVal <= &HFF Then
        If (lAscVal >= &H30 And lAscVal <= &H39) Or (lAscVal >= &H41 And lAscVal <= &H5A) Or (lAscVal >= &H61 And lAscVal <= &H7A) Then
            szCode = szCode & szChar
            szCode = szCode & "%" & Hex(AscW(szChar))
        End If
    Else
        szHex = Hex(AscW(szChar))
        iStrLen2 = Len(szHex)
        For iCount2 = 1 To iStrLen2
            szChar = Mid$(szHex, iCount2, 1)
            Select Case szChar
                Case Is = "0"
                    szBin = szBin & "0000"
                Case Is = "1"
                    szBin = szBin & "0001"
                Case Is = "2"
                    szBin = szBin & "0010"
                Case Is = "3"
                    szBin = szBin & "0011"
                Case Is = "4"
                    szBin = szBin & "0100"
                Case Is = "5"
                    szBin = szBin & "0101"
                Case Is = "6"
                    szBin = szBin & "0110"
                Case Is = "7"
                    szBin = szBin & "0111"
                Case Is = "8"
                    szBin = szBin & "1000"
                Case Is = "9"
                    szBin = szBin & "1001"
                Case Is = "A"
                    szBin = szBin & "1010"
                Case Is = "B"
                    szBin = szBin & "1011"
                Case Is = "C"
                    szBin = szBin & "1100"
                Case Is = "D"
                    szBin = szBin & "1101"
                Case Is = "E"
                    szBin = szBin & "1110"
                Case Is = "F"
                    szBin = szBin & "1111"
                Case Else
            End Select
        Next iCount2
        szTemp = "1110" & Left$(szBin, 4) & "10" & Mid$(szBin, 5, 6) & "10" & Right$(szBin, 6)
        For iCount2 = 1 To 24
            If Mid$(szTemp, iCount2, 1) = "1" Then
                lResult = lResult + 1 * 2 ^ (24 - iCount2)
            Else: lResult = lResult + 0 * 2 ^ (24 - iCount2)
            End If
        Next iCount2
        szTemp = Hex(lResult)
        szCode = szCode & "%" & Left$(szTemp, 2) & "%" & Mid$(szTemp, 3, 2) & "%" & Right$(szTemp, 2)
    End If
    szBin = vbNullString
    lResult = 0
Next iCount1
UrlEncode = szCode

End Function

2014年12月9日 星期二

計算陣列個數 count 用法

<?php
$data = array(
    "apples" =>
        array("red", "yellow", "pineapples"),
    "bananas" =>
        array("small", "medium", "big"),
    "vegs" =>
        array("potatoes", "carrots", "onions")
);

$rows = count($data,0);
$cols = (count($data,1)/count($data,0))-1;
print "There are {$rows} rows and {$cols} columns in the table!";
?>
There are 3 rows and 3 columns in the table!

2014年12月8日 星期一

mb_fgetcsv 解決 fgetcsv 中文亂碼

<?php
/**
  * mb_fgetcsv
  *
  * 解結fgetcsv讀取中文亂碼函式
  *
  */

function mb_fgetcsv(&$handle, $length = null, $d = ",", $e = '"') {
 $d = preg_quote($d);
 $e = preg_quote($e);
 $_line = "";
 $eof=false;
 while ($eof != true) {
  $_line .= (empty ($length) ? fgets($handle) : fgets($handle, $length));
  $itemcnt = preg_match_all('/' . $e . '/', $_line, $dummy);
  if ($itemcnt % 2 == 0){
   $eof = true;
  }
 }
 
 $_csv_line = preg_replace('/(?: |[ ])?$/', $d, trim($_line));
 
 $_csv_pattern = '/(' . $e . '[^' . $e . ']*(?:' . $e . $e . '[^' . $e . ']*)*' . $e . '|[^' . $d . ']*)' . $d . '/';
 preg_match_all($_csv_pattern, $_csv_line, $_csv_matches);
 $_csv_data = $_csv_matches[1];
 
 for ($_csv_i = 0; $_csv_i < count($_csv_data); $_csv_i++) {
  $_csv_data[$_csv_i] = preg_replace("/^" . $e . "(.*)" . $e . "$/s", "$1", $_csv_data[$_csv_i]);
  $_csv_data[$_csv_i] = str_replace($e . $e, $e, $_csv_data[$_csv_i]);
 }
 
 return empty ($_line) ? false : $_csv_data;
}

?>

2014年11月18日 星期二

使用 Microsoft SQL Server Management Studio 附加資料庫發生「作業系統錯誤 5: "5(存取被拒。)"」的訊息

資料庫檔案 (*.mdf) 無法正確附加。 解決方式是在資料庫檔案上按右鍵→內容→切換至[安全性]頁籤, 將檔案權限設定為「完全控制」給 NETWORK SERVICE 與 SQLServerMSSQLUser$$MSSQLSERVER 這兩個帳戶。 就OK了

2014年10月22日 星期三

Excel取代換行符號

Ctrl+h 出現取代對話方塊時 以 Ctrl+j 為取代 尋找目標

2014年10月7日 星期二

EXCEL擷取欄位中的超連結

Excel 中並沒有擷取超連結的函數
所以必須自訂函數

方法如下:
  1. 按 Alt + F11 打開Visual Basic Editor。
  2. 在工具列選擇「插入」/「模組」。
  3. 貼上以面自訂函式碼。
  4. 按 Alt + Q 離開並回到Excel。

Function 
GetAddress(HyperlinkCell As Range)
    On Error Resume Next
    GetAddress = Replace(HyperlinkCell.Hyperlinks(1).Address, "mailto:", "")
End Function

word合併列印後 插入頁碼都是1

 word合併列印後 想說插入頁碼這樣比較之到是第幾頁
結果插入後頁碼都是1
看了一下才知道原來每頁後面都是插入分節符號
所以才都是第一頁

解決方法:
把分節符號改成分頁符號
Ctrl + H (取代)
尋找目標: ^b
取代為: ^m
就ok了

2014年9月23日 星期二

MS SQL 備份 DOS COMMAND

今天剛好要備份sql data 但是客戶那裡安裝的 Express版,沒有SQL Server Agent的服務,所以只有自己動手來寫 DOS COMMAND 。

為了讓備份檔案不會重複於是利用date time 方式來產生資料夾,日期解決了但是時間部份就無法自動補0,於是就利用 if 的方式解決了這個問題



set dd=D:\DB_Backup\%date:~0,4%%date:~5,2%%date:~8,2%
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
echo hour=%hour%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
echo min=%min%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
echo secs=%secs%

set fn=%dd%%hour%%min%%secs%

md %fn%

NET STOP MSSQL$SQLEXPRESS

COPY "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DB_Data.mdf" %dd%
COPY "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data\DB_log.ldf" %dd%

NET START MSSQL$SQLEXPRESS

2014年8月31日 星期日

關閉 購物禮卷 與 推薦銷售


\catalog\view\theme\default\template\common
目錄下找到
footer.tpl

尋找



  • <?php echo $text_voucher; ?>
  • <?php echo $text_affiliate; ?>
  • 把它給註解掉

         


    就OK了

    2014年8月7日 星期四

    網站變灰色css

    加在<head>與</head>之間
    
    網站變灰色css
    
    
    

    2014年8月5日 星期二

    SQL 2008 手動將結構描述改為dbo

    2008處理方式:手動將結構描述改為dbo
      開啟Microsoft SQL Server Management Studio==>選擇該資料庫==>選擇資料表,其結構
      描述為使用者名稱的==>到資料表上按滑鼠右鍵,選擇設計==>在屬性中選結構描述==>變更擁有者
      為dbo,存檔==>擁有者就改為dbo,就可刪除帳號即可
      註:SQL Server Management Studio 預設並不開啟屬性視窗,按F4就可開啟

    2014年7月14日 星期一

    檢查網站是否正常連結

    File_Get_Contents("../.htm");
    或者
    CURL
    或者
    $FP=FSockOpen("www.php.net",80,$errno,$errstr,30);
    IF(!$FP){
        Echo 'Find Error:',$errstr($errno),'
    \n'; }Else{ fputs($FP,"GET / HTTP/1.0\r\nHost:www.example.com\r\n\r\n"); Echo 'Output:
    ',Chr(10); While(!feof($FP)){ Echo fgets($FP,128),'
    --------
    '; } Fclose($FP); }

    2014年6月3日 星期二

    自動刪除檔案

    
    '自動刪除檔案
    
    '天數
    daysAgo = 365
    
    '路徑
    dirPath = "C:\\inetpub\\logs\\LogFiles\\W3SVC6"
    
    '副檔名
    extName = ".log"
    
    '---------程式開始------------
    
    Set fs = CreateObject("Scripting.FileSystemObject")
    Set w = WScript.CreateObject("WScript.Shell")
    
    Set f = fs.GetFolder(dirPath)
    Set fc = f.Files
    
    dateBefore = Now() - daysAgo
    
    For Each ff in fc
    fileName = ff.Name
    fileDate = ff.DateLastModified
    
    If Right(fileName, Len(extName)) = extName And fileDate < dateBefore Then
    fs.DeleteFile(dirPath & "\\" & fileName)
    End If
    Next
    
    

    2014年4月24日 星期四

    匯出EXCLE檔案

    
    <?php
    $file="output".date("YmdHis").".xls";
    header("Content-type: application/vnd.ms-excel");
    header("Content-Disposition: attachment; filename=$file;");
    //將PHP轉成下載的檔案指定名稱與副檔名.xls
    
    echo ''."\n";
    echo ''."\n";
    echo '';
    
    echo '';
    
    ?>
    
    

    2014年2月20日 星期四

    facebook API 取得項目

    if( $userId == 0 ) {
          // Generate a login url
          $url = $facebook->getLoginUrl( array( 'scope' => 'email, user_status' ) );
          ... Your Login button ...
    } else {
          // Get user's info
          $userdata = $facebook->api( '/me' );
          $data = array(
                'first_name'    => $userdata['first_name'],
                'last_name'     => $userdata['last_name'],
                'username'      => $userdata['username'],
                'email'         => $userdata['email'],
                'languages'     => $userdata['languages'],
                'locale'        => $userdata['locale'],
                'timezone'      => $userdata['timezone'],
                'gender'        => $userdata['gender'],
                'location'      => $userdata['location'],
                'hometown'      => $userdata['hometown'],
          );
          print_r( $data );
    }
    

    2014年1月8日 星期三

    獲取遠端圖片並把它保存到本地

    <?php 
    // Function: 獲取遠端圖片並把它保存到本地 
    // $url 是遠端圖片的完整URL位址,不能為空。 
    // $filename 是可選變數: 如果為空,本地檔案名將基於時間和日期自動生成. 
    function GrabImage($url,$filename="") {  
        if($url==""){ 
            return false; 
        } 
        if($filename=="") {  
            $ext=strrchr($url,".");  
            $temext = strrchr(strtolower($url),".");  
            if($temext!=".jpg"&$temext!=".jpeg"){ 
                return false; 
            } 
            $filename=date("dMYHis").$ext; 
            $filepath=dirname(__FILE__)."/pictures/".$filename;  
        }  
       
        ob_start();  
        readfile($url);  
        $img = ob_get_contents();  
        ob_end_clean();  
        $size = strlen($img);  
       
        $fp2=fopen($filepath, "a");  
        fwrite($fp2,$img);  
        fclose($fp2);  
       
        return $filename;  
    }  
    ?> 
    

    2014年1月7日 星期二

    php使用gmail smtp 寄信

    <?php
       include("PHPMailer/class.phpmailer.php"); //匯入PHPMailer類別     
      
       $mail= new PHPMailer();          //建立新物件
       $mail->IsSMTP();                 //設定使用SMTP方式寄信
       $mail->SMTPAuth = true;          //設定SMTP需要驗證
       $mail->SMTPSecure = "ssl";       // Gmail的SMTP主機需要使用SSL連線
       $mail->Host = "smtp.gmail.com";  //Gamil的SMTP主機
       $mail->Port = 465;               //Gamil的SMTP主機的SMTP埠位為465埠。
       $mail->CharSet = "big5";         //設定郵件編碼      
      
       $mail->Username = "*********";  //Gmail帳號
       $mail->Password = "*********";  //Gmail密碼      
      
       $mail->From = "xxx@gmail.com"; //設定寄件者信箱
       $mail->FromName = "xxx";                 //設定寄件者姓名
       $mail->Subject = "PHPMailer 測試信件";    //設定郵件標題
       $mail->Body = "大家好,這是一封測試信件! ";  //設定郵件內容
       $mail->IsHTML(true);                     //設定郵件內容為HTML
       $mail->AltBody = $altbody;               //這個設定主要是預防收件者無法顯示HTML信件時的替代文字
       $mail->WordWrap = 50;                    //設定一行最多為50個字元,即每50個字自動斷行
       $mail->AddReplyTo("info@iii.org.tw", "Info"); //設定回函
       $mail->AddBCC("zzz@iii.org.tw", "zzz"); //使用密件副本
       $mail->AddAttachment("/var/tmp/file.tar.gz"); //新增附件檔案
       $mail->AddAttachment("/tmp/image.jpg", "new.jpg"); //附件也可以更改名稱
       $mail->AddAddress("xxxxx@gmail.com", "xxx"); //設定第一位收件者郵件及名稱
       $mail->AddAddress("xxxxx@gmail.com", "xxx"); //設定第二位收件者郵件及名稱      
      
       if(!$mail->Send()) {
           echo "Mailer Error: " . $mail->ErrorInfo;
       }
       else {
           echo "Message sent!";
       }
    ?>
    
    *注意事項 php.ini 中設定ssl 要開 否則會錯誤 設定方式 搜尋"php_openssl.dll",然後將前方的";"拿掉,若搜尋不到就自己把"extension=php_openssl.dll"這一句加上去,然後存檔重開web server

    抓取RSS分析

    抓取網頁函數
    private string GetWebresourceFile(string url)
    {
        WebRequest request = WebRequest.Create(url);
        request.Timeout = 10000;
        WebResponse response = request.GetResponse();
        Stream resStream = response.GetResponseStream();
        StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8);
        string SourceCode = sr.ReadToEnd();
        resStream.Close();
        sr.Close();
        return SourceCode;
    }