function zerofill(num,length){
num=""+num;
while(num.length<length){num="0"+num;}
return num;
}
2011-05-19 12:06
[JavaScript] zerofill 以零填滿指定位數
分類:
工作備忘,
JavaScript
0
回應
2011-04-19 09:54
[Oracle] PDO-OCI 的 DSN 連接字串
最近重裝我的開發環境,結果連 oracle 一直連不上,出現了以下幾種訊息,最後是因為我的 TNS listener 沒設好,或是我的 DSN 錯誤,整理出我試過的幾個 DSN 連接字串:
ORA-12154: TNS:could not resolve service name
ORA-06401: NETCMN: invalid driver designator
ORA-12514: TNS:listener could not resolve SERVICE_NAME
ORA-12505: TNS:listener could not resolve SID given in connect descriptor
ORA-12154: TNS:could not resolve service name
ORA-06401: NETCMN: invalid driver designator
ORA-12514: TNS:listener could not resolve SERVICE_NAME
ORA-12505: TNS:listener could not resolve SID given in connect descriptor
$DSN="oci:dbname=jaxdb;charset=utf-8";
$DSN="oci:dbname=127.0.0.1:1521/jaxdb;charset=utf-8";
$DSN = "oci:dbname=(
DESCRIPTION = (
ADDRESS_LIST = (
ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)
)
)(CONNECT_DATA=
(SID = jaxdb)
)
);charset=utf8";
$DSN = "oci:dbname=(
DESCRIPTION = (
ADDRESS_LIST = (
ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)
)
)(CONNECT_DATA=
(SERVICE_NAME = jaxdb)
)
);charset=utf8";
2011-04-15 13:16
[PHP] 計算時間的秒數
/*計算時間的秒數*/
function timeStrToSecs($timeStr) {
return strtotime($timeStr)-strtotime('today');
}
/*show*/
var_dump(timeStrToSecs('00:01:22'));
2011-04-10 23:46
Facebook 推文按鈕 失效了
之前寫過Blogger 的標題加上 Facebook 官方的推文按鈕這篇文章
最近 blogger 加了新功能用 ajax 換頁
結果 Facebook 推文按鈕在第二頁就完全不會動了
Google 一下找到 保留 Blogger Ajax 換頁功能,觸發自訂 JS 功能做法這篇文章
在範本中加入以下程式碼就好了:
最近 blogger 加了新功能用 ajax 換頁
結果 Facebook 推文按鈕在第二頁就完全不會動了
Google 一下找到 保留 Blogger Ajax 換頁功能,觸發自訂 JS 功能做法這篇文章
在範本中加入以下程式碼就好了:
<img onload='if(FB){FB.Share.stopScan();}' src='http://www.blogblog.com/1kt/transparent/white80.png' width='0' />
2011-04-07 17:25
[轉載][Shell] if 條件式選項列表
轉載自:利用 test 指令的測試功能 - 鳥哥的 Linux 私房菜 -- 學習 Shell Scripts
| 標誌 | 意義 | 範例 |
|---|---|---|
| -e | $FILE 是否存在?(常用) | if[ -e $FILE ]; then |
| -f | $FILE 是否存在且為檔案(file)?(常用) | if[ -f $FILE ]; then |
| -d | $FILE 是否存在且為目錄(directory)?(常用) | if[ -d $FILE ]; then |
| -b | $FILE 是否存在且為一個 block device 裝置? | if[ -b $FILE ]; then |
| -c | $FILE 是否存在且為一個 character device 裝置? | if[ -c $FILE ]; then |
| -S | $FILE 是否存在且為一個 Socket 檔案? | if[ -S $FILE ]; then |
| -p | $FILE 是否存在且為一個 FIFO (pipe) 檔案? | if[ -p $FILE ]; then |
| -L | $FILE 是否存在且為一個連結檔? | if[ -L $FILE ]; then |
| 標誌 | 意義 | 範例 |
|---|---|---|
| -r | 偵測該檔名是否存在且具有『可讀』的權限? | if[ -r $FILE ]; then |
| -w | 偵測該檔名是否存在且具有『可寫』的權限? | if[ -w $FILE ]; then |
| -x | 偵測該檔名是否存在且具有『可執行』的權限? | if[ -x $FILE ]; then |
| -u | 偵測該檔名是否存在且具有『SUID』的屬性? | if[ -u $FILE ]; then |
| -g | 偵測該檔名是否存在且具有『SGID』的屬性? | if[ -g $FILE ]; then |
| -k | 偵測該檔名是否存在且具有『Sticky bit』的屬性? | if[ -k $FILE ]; then |
| -s | 偵測該檔名是否存在且為『非空白檔案』? | if[ -s $FILE ]; then |
| 標誌 | 意義 | 範例 |
|---|---|---|
| -nt | (newer than)判斷 $FILE1 是否比 $FILE2 新 | if[ $FILE1 -nt $FILE2 ]; then |
| -ot | (older than)判斷 $FILE1 是否比 $FILE2 舊 | if[ $FILE1 -ot $FILE2 ]; then |
| -ef | 判斷 $FILE1 與 $FILE2 是否為同一檔案, 可用在判斷 hard link 的判定上。 主要意義在判定,兩個檔案是否均指向同一個 inode 哩! | if[ $FILE1 -ef $FILE2 ]; then |
| 標誌 | 意義 | 範例 |
|---|---|---|
| -eq | 兩數值相等 (equal) | if[ n1 -eq n2 ]; then |
| -ne | 兩數值不等 (not equal) | if[ n1 -ne n2 ]; then |
| -gt | n1 大於 n2 (greater than) | if[ n1 -gt n2 ]; then |
| -lt | n1 小於 n2 (less than) | if[ n1 -lt n2 ]; then |
| -ge | n1 大於等於 n2 (greater than or equal) | if[ n1 -ge n2 ]; then |
| -le | n1 小於等於 n2 (less than or equal) | if[ n1 -le n2 ]; then |
| 標誌 | 意義 | 範例 |
|---|---|---|
| -z | 判定字串是否為 0 ?若 $STR 為空字串,則為 true | if[ -z $STR ]; then |
| -n | 判定字串是否非為 0 ?若 $STR 為空字串,則為 false。 註: -n 亦可省略 | if[ -n $STR ]; then |
| = | 判定 $STR1 是否等於 $STR2 ,若相等,則回傳 true | if[ $STR1 = $STR2 ]; then |
| != | 判定 $STR1 是否不等於 $STR2 ,若相等,則回傳 false | if[ $STR1 != $STR2 ]; then |
| 標誌 | 意義 | 範例 |
|---|---|---|
| -a | (and)兩狀況同時成立 | if[ -r $FILE -a -x $FILE ]; then |
| -o | (or)兩狀況任何一個成立 | if[ -r $FILE -o -x $FILE ]; then |
| ! | 反相狀態 | if[ ! -x $FILE ]; then |
2011-04-06 13:03
[JSX] 開啟檔案到圖層
這個程式會將選取的圖檔開啟,並全部複製到一個新的圖片文件中。
//#target photoshop
function copyDoc(toDoc, fromDoc){
app.activeDocument=fromDoc;
/*如果背景不存在,則標記左上角的 1px*/
if(!fromDoc.backgroundLayer){
var white = new SolidColor();
white.rgb.hexValue = 'FFFFFF';
art.selection.select([ [1,0],[1,1],[0,1],[0,0],[1,0] ]);
art.selection.fill(white, ColorBlendMode.NORMAL, 1);// 填滿
}
//複製圖層
fromDoc.selection.selectAll()
fromDoc.selection.copy()
//貼上圖層
app.activeDocument=toDoc;
return toDoc.paste();
}
function main(){
/*取得多個的檔案路徑*/
var filePathList = File.openDialog("開啟圖檔","*",true);
if(filePathList.length == 0){return;}
//新增 Temp 文件
var newDoc = app.documents.add(
1, 1, 72,
"temp",
NewDocumentMode.RGB,
DocumentFill.TRANSPARENT
);
var maxWidth=1, maxHeight=1;
var filePath, i=0;
while(filePath=filePathList[i++]){
/*開啟圖檔*/
try {
var atDoc=open(new File(filePath));
} catch (e) { continue; }
/*最大高度&寬度*/
if(maxWidth<atDoc.width){ maxWidth=atDoc.width;}
if(maxHeight<atDoc.height){ maxHeight=atDoc.height;}
/*複製檔案*/
copyDoc(newDoc, atDoc);
/*關閉檔案*/
atDoc.close(SaveOptions.DONOTSAVECHANGES);
}
/*變更圖片尺寸*/
app.activeDocument=newDoc;
newDoc.resizeCanvas(maxWidth, maxHeight, AnchorPosition.TOPLEFT);
}
//把Photoshop推到最上層
app.bringToFront();
//設定使用的單位為「像素(Pixel)」
app.preferences.rulerUnits = Units.PIXELS;
//執行主程式
main();
2011-04-06 11:36
[JSX] 開啟圖檔
#target photoshop
var filePath = "/d/myPic.jpg";
try {
var myDoc=open(new File(filePath));
}catch(e){
alert("無法開啟圖檔!");
}
2011-04-06 11:25
[JSX] 文字檔的讀取 & 寫入
讀取文字檔
寫入文字檔
#target photoshop
function main(){
/*取得單一的檔案路徑*/
var filePath = File.openDialog("讀取文字檔", "TEXT Files:*.TXT");
if(!filePath || !filePath.exists){
alert("檔案不存在"); return;
}
/* 開啟檔案 */
var filePoint = new File(filePath);
if (!filePoint.open("r","","")){
alert("無法開啟檔案!!"); return;
}
/* 以行為單位讀取檔案 */
var row;
while(row=filePoint.readln()){
alert(row);
}
// --or--
/* 讀取全部的檔案內容 */
var content = filePoint.read();
alert(content);
/*關閉檔案*/
filePoint.close();
}
main();
寫入文字檔
#target photoshop
function main(){
// 輸出 CSS 定位檔
var filePath = File.saveDialog("寫入文字檔","TEXT Files:*.TXT");
if(!filePath){
alert("建立開啟檔案!!"); return;
}
if(filePath.exists && !confirm("你確定要覆蓋這個檔案?")){
return;
}
// 開啟檔案
var filePoint = new File(filePath);
if (!filePoint.open("w","","")){
alert("無法開啟檔案!!");
}
/* 以行為單位寫入檔案 */
filePoint.writeln("row content")
// --or--
/* 寫入內容 */
filePoint.write("content");
/*關閉檔案*/
filePoint.close();
}
main();
訂閱:
文章 (Atom)