$pdf->SetFont('msungstdlight', '', 14, '', true); // 繁中
$pdf->SetFont('dejavusans', '', 14, '', true); // 預設 utf8
2011年5月19日 星期四
TCPDF 中文字型
2011年4月26日 星期二
SQL 計算欄位字串出現次數
資料表建立
CREATE TABLE `test1` (
`C1` int(11) NOT NULL auto_increment,
`C2` varchar(11) default NULL,
PRIMARY KEY (`C1`)
) ENGINE=MyISAM AUTO_INCREMENT=5 DEFAULT CHARSET=utf8
INSERT INTO `test1` VALUES (1, '10442');
INSERT INTO `test1` VALUES (2, '4403');
INSERT INTO `test1` VALUES (3, '6513');
INSERT INTO `test1` VALUES (4, '2222');
SELECT 語法 for Mysql
方式 1
SELECT CHAR_LENGTH(Replace(C2,'4','4z'))-CHAR_LENGTH(C2) FROM TEST1 where C2 LIKE '%4%'
方式 2
SELECT CHAR_LENGTH(C2)-CHAR_LENGTH(Replace(C2,'4','')) FROM TEST1 where C2 LIKE '%4%'
原理 :
用replace的方式 , 取出 4 後將 4的部份變更字元數 , 就會增加字串的長度或減少 , 在使用 Len ( SQL ) , CHAR_LENGTH ( MYSQL ) 來計算字串的長度 , 將變更後的長度和原本長度互減就可找出字串欄位出現的次數
2011年4月21日 星期四
正規化表示法
資料來源:張智星的網站 – 正規表示式
通用範例
通用範例
| 通用式 | 說明及範例 | 比對不成立之字串 |
|---|---|---|
| /a/ | 含字母 "a" 的字串,例如 "ab", "bac", "cba" | "xyz" |
| /a./ | 含字母 "a" 以及其後任一個字元的字串,例如 "ab", "bac"(若要比對.,請使用 \.) | "a", "ba" |
| /^xy/ | 以 "xy" 開始的字串,例如 "xyz", "xyab"(若要比對 ^,請使用 \^) | "axy", "bxy" |
| /xy$/ | 以 "xy" 結尾的字串,例如 "axy", "abxy"以 "xy" 結尾的字串,例如 "axy", "abxy" (若要比對 $,請使用 \$) | "xya", "xyb" |
| /[13579]/ | 包含 "1" 或 "3" 或 "5" 或 "7" 或 "9" 的字串,例如:"a3b", "1xy" | "y2k" |
| /[0-9]/ | 含數字之字串 | 不含數字之字串 |
| /[a-z0-9]/ | 含數字或小寫字母之字串 | 不含數字及小寫字母之字串 |
| /[a-zA-Z0-9]/ | 含數字或字母之字串 | 不含數字及字母之字串 |
| /b[aeiou]t/ | "bat", "bet", "bit", "bot", "but" | "bxt", "bzt" |
| /[^0-9]/ | 不含數字之字串(若要比對 ^,請使用 \^) | 含數字之字串 |
| /[^aeiouAEIOU]/ | 不含母音之字串(若要比對 ^,請使用 \^) | 含母音之字串 |
| /[^\^]/ | 不含 "^" 之字串,例如 "xyz", "abc" | "xy^", "a^bc" |
伏號說明
| 字元 | 說明 | 簡單範例 |
|---|---|---|
| \ | 避開特殊字元 | /A\*/ 可用於比對 "A*",其中 * 是一個特殊字元,為避開其特殊意義,所以必須加上 "\" |
| ^ | 比對輸入列的起始位置 | /^A/ 可比對 "Abcd" 中的 "A",但不可比對 "aAb" |
| $ | 比對輸入列的結束位置 | /A$/ 可比對 "bcdA" 中的 "A",但不可比對 "aAb" |
| * | 比對前一個字元零次或更多次 | /bo*/ 可比對 "Good boook" 中的 "booo",亦可比對 "Good bk" 中的 "b" |
| + | 比對前一個字元一次或更多次,等效於 {1,} | /a+/ 可比對 "caaandy" 中的 "aaa",但不可比對 "cndy" |
| ? | 比對前一個字元零次或一次 | /e?l/ 可比對 "angel" 中的 "el",也可以比對 "angle" 中的 "l" |
| . | 比對任何一個字元(但換行符號不算) | /.n/ 可比對 "nay, an apple is on the tree" 中的 "an" 和 "on",但不可比對 "nay" |
| (x) | 比對 x 並將符合的部分存入一個變數 | /(a*) and (b*)/ 可比對 "aaa and bb" 中的 "aaa" 和 "bb",並將這兩個比對得到的字串設定至變數 RegExp.$1 和 RegExp.$2。 |
| xy | 比對 x 或 y | /a*b*/g 可比對 "aaa and bb" 中的 "aaa" 和 "bb" |
| {n} | 比對前一個字元 n 次,n 為一個正整數 | /a{3}/ 可比對 "lllaaalaa" 其中的 "aaa",但不可比對 "aa" |
| {n,} | 比對前一個字元至少 n 次,n 為一個正整數 | /a{3,}/ 可比對 "aa aaa aaaa" 其中的 "aaa" 及 "aaaa",但不可比對 "aa" |
| {n,m} | 比對前一個字元至少 n 次,至多 m 次,m、n 均為正整數 | /a{3,4}/ 可比對 "aa aaa aaaa aaaaa" 其中的 "aaa" 及 "aaaa",但不可比對 "aa" 及 "aaaaa" |
| [xyz] | 比對中括弧內的任一個字元 | /[ecm]/ 可比對 "welcome" 中的 "e" 或 "c" 或 "m" |
| [^xyz] | 比對不在中括弧內出現的任一個字元 | /[^ecm]/ 可比對 "welcome" 中的 "w"、"l"、"o",可見出其與 [xyz] 功能相反。(同時請同學也注意 /^/ 與 [^] 之間功能的不同。) |
| [\b] | 比對退位字元(Backspace character) | 可以比對一個 backspace ,也請注意 [\b] 與 \b 之間的差別 |
| \b | 比對英文字的邊界,例如空格 | 例如 /\bn\w/ 可以比對 "noonday" 中的 'no' ; /\wy\b/ 可比對 "possibly yesterday." 中的 'ly' |
| \B | 比對非「英文字的邊界」 | 例如, /\w\Bn/ 可以比對 "noonday" 中的 'on' , 另外 /y\B\w/ 可以比對 "possibly yesterday." 中的 'ye' |
| \cX | 比對控制字元(Control character),其中 X 是一個控制字元 | /\cM/ 可以比對 一個字串中的 control-M |
| \d | 比對任一個數字,等效於 [0-9] | /[\d]/ 可比對 由 "0" 至 "9" 的任一數字 但其餘如字母等就不可比對 |
| \D | 比對任一個非數字,等效於 [^0-9] | /[\D]/ 可比對 "w" "a"... 但不可比對如 "7" "1" 等數字 |
| \f | 比對 form-feed | 若是在文字中有發生 "換頁" 的行為 則可以比對成功 |
| \n | 比對換行符號 | 若是在文字中有發生 "換行" 的行為 則可以比對成功 |
| \r | 比對 carriage return | |
| \s | 比對任一個空白字元(White space character),等效於 [ \f\n\r\t\v] | /\s\w*/ 可比對 "A b" 中的 "b" |
| \S | 比對任一個非空白字元,等效於 [^ \f\n\r\t\v] | /\S/\w* 可比對 "A b" 中的 "A" |
| \t | 比對定位字元(Tab) | |
| \v | 比對垂直定位字元(Vertical tab) | |
| \w | 比對數字字母字元(Alphanumerical characters)或底線字母("_"),等效於 [A-Za-z0-9_] | /\w/ 可比對 ".A _!9" 中的 "A"、"_"、"9"。 |
| \W | 比對非「數字字母字元或底線字母」,等效於 [^A-Za-z0-9_] | /\W/ 可比對 ".A _!9" 中的 "."、" "、"!",可見其功能與 /\w/ 恰好相反。 |
| \ooctal | 比對八進位,其中octal是八進位數目 | /\oocetal123/ 可比對 與 八進位的ASCII中 "123" 所相對應的字元值。 |
| \xhex | 比對十六進位,其中hex是十六進位數目 | /\xhex38/ 可比對 與 16進位的ASCII中 "38" 所相對應的字元。 |
使用範例:
//禁止使用不含 英文 + 數字 + .-_()
//用於禁止使用中文
str = "123.d" ;
reg = /[^a-zA-Z0-9\.\-_\(\)]/ ;
if (reg.test(str)) alert("禁止使用不含 英文 + 數字 + .-_()");
2011年4月7日 星期四
列出目錄檔案資料
使用 php 列出檔案資料 , 在使用 include 引用 php , 會 hidden 檔名會 bak 檔案 , 預設目錄為 列出include 子目錄底下檔案
function list_files($dir = "include/" ){
if (is_dir($dir)) {
if ($dir_list = opendir($dir)) {
while (($file = readdir($dir_list)) !== false) {
if($file != '.' && $file != '..' && !strpos( $file , "bak" ) ){
include_once ( $dir . $file ) ;
}
}
closedir($dir_list);
}
}
}
list_files();
2011年4月5日 星期二
jquery select 運用
對select 設定 id="val"
取值
取顯示值
取值
$("#val").val();
取顯示值
$("#val option:selected").text();
PS : 單使用$("#val").text(); 會列出所有option值
2011年3月29日 星期二
facebook sdk 開發環境備註
在開發 facebook 應用程式時 , 找空間需注意事項除支援 php + mysql 外 , 也要支援 php_curl.dll , 因 facebook 回傳資訊會使用SSL的方式 , 而官網提供的 php sdk 也運用到 php_curl.dll 內的函式庫 , 可查看 src/facebook.php 內 19 行 , 一開始就判斷 php.ini 有沒有引用 php_curl.dll
要如何知道自己免空有無支援 php_curl.dll方式
facebook 無 php_curl.dll 會出現之錯誤訊息 PS : 線上空間有時會hidden訊息,可用 .htaccess 方式顯示出
自管server 的話 , 請安裝 php_curl.dll 即可解決 , 而線上空間的話就只能請空間商幫你安裝 php_curl.dll , 如果你使用免空呢 , 就只能換空間 ORZ....
使用免空者不要想用 dl() 或 .htaccess 的方式引用 , 因自行測試結果為 dl()方式會被關閉,怕被攻擊 , .htaccess 不支援 dll 引用載入 , 所以換空間會比較快
co.cc PS : 網上說免費只有一年限制 ( 找不出空間設定 , 只有測出設定DNS )
kodingen.com 測試後很棒 , 推行
src/facebook.php
if (!function_exists('curl_init')) {
throw new Exception('Facebook needs the CURL PHP extension.');
}
要如何知道自己免空有無支援 php_curl.dll方式
phpinfo
<?
phpinfo(); // 使用phpinfo 查出有無 curl 資訊
?>
facebook 無 php_curl.dll 會出現之錯誤訊息 PS : 線上空間有時會hidden訊息,可用 .htaccess 方式顯示出
Fatal error: Uncaught exception 'Exception' with message 'Facebook needs the CURL PHP
PS : 這是直接執行 php sdk 範例的錯誤訊息
自管server 的話 , 請安裝 php_curl.dll 即可解決 , 而線上空間的話就只能請空間商幫你安裝 php_curl.dll , 如果你使用免空呢 , 就只能換空間 ORZ....
使用免空者不要想用 dl() 或 .htaccess 的方式引用 , 因自行測試結果為 dl()方式會被關閉,怕被攻擊 , .htaccess 不支援 dll 引用載入 , 所以換空間會比較快
空間測試列表
kodingen.com 測試後很棒 , 推行
2011年3月28日 星期一
fckeditor . ckeditor 變更skin 佈景主題
fckeditor 2.x 預設佈景主題有三個分別為 default . office2003 . silver
變更文字區顏色,更改 fck_editor.css
ckeditor 預設佈景主題有三個分別為 default . office2003 . v2
js
php
$FCKeditor = new FCKeditor('content');
$FCKeditor->BasePath = '/fckeditor/'; //fckeditor 放置位置
$FCKeditor->Config['SkinPath'] = 'skins/office2003/' ; //變更 skins 資料夾中的佈景主題
$FCKeditor->Value =$content; // 預設值
$FCKeditor->CreateHtml();
js
FCKConfig.SkinPath = '/office2003/' ;
變更文字區顏色,更改 fck_editor.css
PS : 方法測試後 ie 無法顯示設定顏色
#xEditingArea {
background-color: #000;
}
ckeditor 預設佈景主題有三個分別為 default . office2003 . v2
js
mysitestyles.css
body
{
/* Font */
font-family: Arial, Verdana, sans-serif;
font-size: 12px;
/* Text color */
color: #f0f0f0;
/* Remove the background color to make it transparent */
background-color: #353c42;
}
html
{
/* #3658: [IE6] Editor document has horizontal scrollbar on long lines
To prevent this misbehavior, we show the scrollbar always */
_overflow-y: scroll
}
img:-moz-broken
{
-moz-force-broken-image-icon : 1;
width : 24px;
height : 24px;
}
img, input, textarea
{
cursor: default;
}
javascript
var editor = CKEDITOR.replace('content',{skin : 'office2003' , contentsCss : 'mysitestyles.css' }); // 使用skin變更佈景
CKFinder.SetupCKEditor( editor, '/ckfinder/' ) ;
訂閱:
文章 (Atom)