2017年4月13日 星期四

C# Regex.Match to get src for image tag


正規表達式,在分析截取網頁上<img /> 標籤上 src 內的值, 貼上程式碼做記錄


string text = "<img src='images/mypic.jpg' width='100' height='100' />";
string SRCString = Regex.Match(text, "<img.+?src=[\"](.+?)[\"].+?>", RegexOptions.IgnoreCase).Groups[1].Value;


附上來源 stackoverflow

2016年8月11日 星期四

image into base64 string using javascript 無法取得圖片資源解決方式

再測試javascript 把圖片轉成 base64 字串,原本在目錄底下測試還算正常可取得圖片資源

,途中想說測試其它圖片,就直接去自己的網站上去取得圖片連結,直接貼上....發現,

奇怪怎麼讀取不到,想說是不是圖片連結有錯,就把圖片連結直接貼到瀏覽器分頁上,圖片是可

已讀取到的,可是怎麼使用 XMLHttpRequest  load 卻沒反應, 覺得不太可能是SERVER問題,

就去 google 圖片,隨便找一下圖片連結 貼上,......疑!?,圖片資源是可以取得的。

不得不承認是SERVER 設定上的問題了;開啟 firebug,

觀察讀取圖片 SERVER 回應 head 狀態

 [自身SERVER 回應狀態]





[其它SERVER回應狀態]



發現 兩個SERVER ,回應的 head 有點出入,比較了一下 "access-control-allow-origin"

嫌疑最大,直接問google 大神了,查到主要資訊,以下



https://developer.mozilla.org/zh-TW/docs/HTTP/Access_control_CORS

根據上篇文章說明,很明顯的答案已經出來了,我的推斷是正確的,

基於方便測試,再另外一台有相同情況的 PHP SERVER上做測試,先新增一個檔案

.htaccess ,在"底下"內容增加到.htaccess後上傳到 PHP SERVER

!!注意:基於安全性考量,Access-Control-Allow-Origin 應該根據所需網域去設定。

參考網址

   Header add Access-Control-Allow-Origin "*"
   Header add Access-Control-Allow-Headers "origin, x-requested-with, content-type"
   Header add Access-Control-Allow-Methods "PUT, GET, POST, DELETE, OPTIONS"


已上完成後,再傳一張圖片上去 PHP SERVER,再利用 XMLHttpRequest  load 再去讀取一次

就....成功讀取圖片資源了!!!!    

補上 javascript image into base64 string 參考文章 ↓

http://stackoverflow.com/questions/6150289/how-to-convert-image-into-base64-string-using-javascript

2016年2月2日 星期二

How to get count of rows using SqlDataReader in C#

這次紀錄再製作專案時,通常需要取得SQL資料筆數的方式,比較長使用資料儲存方式,例如:DataView,取得筆數方式為 MyDataView.Count

突然想,沒使用過 SqlDataReader 取得SQL資料筆數的方式,所以就詢問了 google 大神,就找
到了以下資訊,才發現自己好弱,竟然不知道有這種方式

 參考網址:連結

這方式是利用DataTable 儲存SqlReader 資料,再使用DataTable的方法 Rows.Count取得 SqlReader的資料筆數

在此紀錄一下囉,不然年紀大了,小腦有點萎縮,很容易忘記。附上程式碼

int _count=0;
using (DataTable dt = new DataTable())
{
  
   dt.Load(MyReader);
   _count = dt.Rows.Count;//取得資料筆數
   DataRow[] result = dt.Select();//dt 資料取得放到陣列
   
   for(int a=0;a<_count;a++){
     
     Response.Write(result[a]["FieldName"]);//列出欄位資料
   }
}