PHP Extensions Download from PECL
在window環境下,有時候PHP函式需要安裝一些必要的dll,像是php_bcompiler.dll、php_bz2.dll等…
在PECL有個清單已經把常常會使用到的dll檔整理下載點了。真是方便,
dll下載清單:http://pecl4win.php.net/list.php
話說...我還是沒去摸liunx呀,滿殘念的@_@
在window環境下,有時候PHP函式需要安裝一些必要的dll,像是php_bcompiler.dll、php_bz2.dll等…
在PECL有個清單已經把常常會使用到的dll檔整理下載點了。真是方便,
dll下載清單:http://pecl4win.php.net/list.php
話說...我還是沒去摸liunx呀,滿殘念的@_@
公司最近說要將PHP原始碼加密@_@,我之前壓根都沒想到這事,所以今天花了一整天拜請google大仙,找到有一種使用bcompiler的方法,趴了官方文件後,索性就寫了一個加密的class,或許以會有機會用到。
1 2 3 4 5 6 7 | //載入函式 include_once('phpCodeZip.php'); //建立加密物件 $encryption = new PhoCodeZip('sourceDir','targetDir'); //執行加密 $encryption->zip(); //如此一來,你就可以在targetDir找到經過加密的PHP原始碼 |
這篇影片是從我朋友軒那邊看到的,相當不錯的短片,讓人感慨年輕時的夢想,卻隨著年長,一直被個擱置著,最後當回頭一望,才發現自己已經滿臉蒼老。


一口一...我用了CI的Image類別,但是上傳後的圖片都失去原始的顏色了!後來記得之前有一本「專業PHP5程式設計指南」有提供縮圖章節,索性就重啃了一遍,其中有一段提到
imagecreatetruecolor函式是被用來產生出一個準備要放置縮圖的空白圖(以PHP變數的型態存在於記憶體當中),注意涵式名稱所暗示的,這個函數將會產生出一個「真實色彩」(true color) (24位元)的圖,而不會像imagecreate那樣,只能取得「以調色盤為基礎」(palette-based) (8位元)的圖。
接著續繼趴CI的User Guide(中)(英)提到Image類別支援使用GD, GD2, ImageMagick, NetPBM的圖型函式庫。我目前設定是GD,所以我猜想會不會GD是舊函式庫,所以沒有imagecreatetruecolor()?但是工作上的同事告訴我他在GD圖型庫的環境中,能正常使用imagecreatetruecolor()
一皿一||||見鬼了!!,害我又不得開啟system\libraries\Image_lib.php進行人工趴碼了@_@,後來發現在第504行類別判斷竟然是這樣的
續繼閱讀...
剛又找到DM1.4.5一個不算是bug的錯誤,那就是save()函式無法儲存使用自訂的id,換句話說DM預定強制限定你的id(PK)欄位必需數字並且自動增值(auto_increment),所以沒辦法使用像是UUID來當做識別碼。
1 2 3 4 5 6 7 8 | <?php //建立User物件(create user ORM) $u = new User(); //使用自訂ID(use custom id) $u->id = uuid(); //無法運作(It' can't working) $u->save(); ?> |
@_@真是的,所以我又開始趴原始碼了,找到判斷什麼時候做update什麼時候做insert動作的那部分。
如何做修改呢?(how to fix?)
續繼閱讀...
最近從小海那邊得知CodeIgniter有ORM的library,馬上就去下載試了一下。從文件來看DataMapper比起IgnitedRecord來得詳細多了,不過我覺得IR的名稱比較帥XD,但是我還是選用了DM了。
DM目前最新的版本是1.4.5,看著文件一步一步試著如何使用,可能之前碰過CakePHP,所以用起來相當的容易上手,一下子就差不多看完了,不過在Automated Timestamps那篇章節所說的效果我卡彈了!
Automated Timestamps的設定,可以讓每次資料有做異動時,自動更新的異動時間欄位,換句話說就是記錄最後修改時間,但是我試了好幾次都沒有成功,後來我自己試著去debug,發現原來在libraries/datamapper.php的428行遺漏了一個動作。
//原始碼片斷(source)
if ($field == $this->updated_field)
{
// Update updated datetime
$this->{$field} = $timestamp;
}
//修正後的程式碼(fixed)
if ($field == $this->updated_field)
{
// Update updated datetime
$this->{$field} = $timestamp;
// Register changed existing
array_push($this->changed_existing,$field);
}
這個做法是參考此篇「Using Zend Framework with CodeIgniter」修改而來的。
事實上外掛Zend的需要性可能比PEAR還要高,我之所以要外掛PEAR來做是因為CI的分頁類好像有問題@_@,索性就直接使用PEAR的分頁類了,而且PEAR的分頁類還有Jumping和Sliding不同模式可選用,在某些情況下,PEAR的彈性可能比較高。however...看你喜不喜歡多掛一個做同樣事情的library而已。
一、下載PEAR函式庫必要的「PEAR核心檔」即可,然後再下載所需的類別套件,以我為例就是「Pager套件」,最終的資料夾結構大概長這樣

續繼閱讀...

這個東西之前就看到了,不過一直沒去試著安裝他,最近重新看書又提到了,所以真的動手去試試這套。嗯…。口。意外的好用耶(廢話,不然怎麼會那麼有名),所以順便在這邊發表一篇當做記錄。
續繼閱讀...
有時候我們必需要動態產生下拉式選單時,用以前的Javascript去寫實在太麻煩了,不過自從有了jquery,一切都簡單多了。所以我自己寫了一個dynamicSelector.js的程式,來方便完成下拉式選單的動作。這次的寫法,每個選單都是用Ajax的方式取得。而且可以套用在多層下拉式選單,只要定義明確都可以運作。
在HTML部分所以,<select>的title屬性定義了三個變數。
初始的<option>就等同於預設選項,所以不必再去設定selected="selected",只要確認初始
不過比較遺憾的是把屬性定義在title,不過select已沒有其它屬性可以用了@_@!,雖然可以用自訂的屬性,不過這樣子在HTML驗證器就會出現警告了,呃…我好像有點完美主義?!
續繼閱讀...
昨天試著要將字串折成陣列,不過在PHP雖然和Javascript都有split(),但是兩個運作的模式卻不一樣
在javascript:
var str = '我是中文字!';
var str_arr = str.split('');
//結果:str_arr = new Array('我','是','中','文','字','!');
在PHP:
$str = '我是中文字!';
$str_arr = split('',$str);
//結果:Warning: split() [function.split]: REG_EMPTY in split.php on line 2
所以在PHP只好自訂折字串為陣列函式,在網路上找到一個function
function stringtoarray($string){
$len = strlen($string);
for($cur=0; $cur<$len; $cur++){
$characterarray[] = $string{$cur};
}
return $characterarray;
}
$str = 'abc123';
print_r(stringtoarray($str)); //輸出 array('a','b','c','1','2','3');