PHP Programming Tutorials, Tips and Scripts
http://dev.fyicenter.com/faq/php/
標籤: 程式設計
在網頁中嵌入 FCKeditor by PHP
網路上的所見即得編輯器真多,昨天為了讓使用者不用自己打 HTML 標籤,花了一些時間把 FCKeditor 嵌入網頁中使用,功能比我想像中的還要強大!不但基本該有的按鈕都有了,還支援復原、剪貼簿、圖片和檔案上傳、表格、排版,甚至還能編輯表單!連在網頁上面顯示的工具列也可以自訂按鈕功能和版面樣式!
功能強但是安裝卻很簡單,只要在 PHP 程式碼中也只要加入五行左右的程式碼就可以正常運作,不賴吧?
首先你必須先引用 FCKeditor 已經寫好的程式碼,裡面會宣告編輯器所用到的物件和物件屬性:require("fckeditor/fckeditor.php");
再來就可以宣告編輯器物件,並且對物件屬性做設定:
$oFCKeditor = new FCKeditor('FCKeditor1');
$oFCKeditor->BasePath = 'fckeditor/';
$oFCKeditor->Value = 'Default text in editor';
第一行 initialize 中的字串,是產生文字編輯區時編輯區的名稱,也就是 textarea 的 name 屬性,以上面的範例來說,後端要接收資料就要使用:$_POST[‘FCKeditor1’]。
第二行是設定 FCKeditor 程式所在位置,如果沒有設定好,會無法載入 Javascript 和 CSS 檔,到時候網頁會無法顯示。第三行則是文字編輯區預設會出現的文字。
最後在 <form></form> 中間加上:$oFCKeditor->Create();
這樣顯示出來大概會向這樣:
再來我們加入二個參數來設定編輯器預設的大小:
$oFCKeditor->Width = '100%';
$oFCKeditor->Height = '400';
如果你不喜歡預設的版面,FCKeditor 有提供 office2003 和 silver 的版面可以更換,只要加入版面路徑到參數裡面就可以了:$oFCKeditor->Config['SkinPath'] = 'skins/office2003/';
當然 FCKeditor 的功能不只如此,其他功能在官方的部落格都有詳細的說明。
array pointer in C
今天讀書會的時候,帶學弟練功遇到幾個以前沒想過的問題,C 語言的 array 可以使用指標來存取。
int a[5]={0,1,2,3,4};
printf("value of a = %d (%X)n",a,a);
printf("value of a[0] = %dn",*a);
上面可以看到 a 裡面存的不是數值,而是記憶體位置。這個記憶體位置指到的值就是陣列第一個整數的值。
既然知道陣列指標的用法,就可以利用指標去存取陣列的內容。
printf("a[1] = %dn",a[1]);
printf("a[1] = %dn",*(a+1));
printf("a[1] = %dn",*((int *) (((void *) a)+sizeof(int)*1)));
第三種用法通常用不到,看看就好。
使用 XOR 做變數交換
哈,在 legnaleurc 的部落格看到突然想起來做個筆記。
一般來說,大家在交換二個變數的時候,習慣會使用第三個變數來做暫存器,例如:
int a,b,c;
c = a;
a = b;
b = c;
不過徐弘洋大師曾經說過一個很神的方法,就是利用 XOR 的方式交換二個變數,方式如下:
int a,b,c;
a ^= b;
b ^= a;
a ^= b;
這種方法有什麼好處呢?以第一種作法時,電腦會將 CPU register 中的資料複製到 memory 中,而且會複製三次;以第二種作法時,電腦則是在 CPU register 中進行三次的邏輯運算。
大家都知道 CPU 以邏輯計算速度最快,再者,register 的存取速度又快於 memory。所以使用第二種方式進行變數交換的速度,會比第一種方式快非常多。
Fortran 中讓 wrirte 不換行
Fortran 裡面只要用到 write 輸出後都會自己會行,當你需要提示使用者輸入時,排版會很不方便。
找了很久,發現有一個心機的作法,就是在 format 最後面加上「 」的符號,然後 write 在去使用這個 format。
program test
integer a
write(*,10)
10 format("Please input the value of a: ")
read(*,*) a
end
