php判斷式的簡化
>> 2012年1月5日 星期四
一般而言,二元判斷是的寫法會是:
if($aa="y"){
echo "YES";
}else{
echo "NO";
}
有更簡便的寫法,一行解決:
echo ($aa="y")? "YES" : "NO" ;
?>
同理,取得GET變數或POST變數也可以用下列方式一行解決
if(empty($_GET['time'])){
$time = time();
}else{
$time = $_GET['time'];
}
echo $time;
//如果GET有time這個值則帶入變數time,如果沒有就給予現在time()的時間
//簡化寫法如下:
$time = (
empty($_GET['time']) ) ? (time()) : ($_GET['time']);
?>
另外,如果是一元判斷,則可以更簡潔處理,如:
$flag = true;Read more...
if($flag){
goFunction();
}
//以上可以簡化成下面這行
$flag && goFunction();
?>
php中使用
>> 2010年10月21日 星期四
網頁中,使用php的語法,正規的用法應該使用作為開頭與結尾,
但是很多時候,會簡單使用 作為起始,可是有時候伺服器並不接受這樣的標籤,
若是有這樣的問題,只要進入php.ini中,修改short_open_tag的設定,
把hort_open_tag = Off改成short_open_tag = On,
這樣就可以使用簡短的標籤起始了。
將Apache+php+PostgreSQL Portable作法紀錄
>> 2010年10月14日 星期四
自由軟體中的資料庫,以MySQL與PostgreSQL(以下簡稱pgSQL)最為普遍,
MySQL在少數Clinet的狀況下,效能比pgSQL來得要好,但是使用連線超5個以上,效能則會明顯降低。
pgSQL雖然效能不及MySQL高,但較為穩定,再多數連線的狀況下,可以保持同樣的效能展現,較不受連線數增加而影響。
此外,最重要的,pgsql具有交易鎖定(Transaction Lock)的設計,可以避免同時間修改資料庫造成資料重複或闕漏的問題。這是MySQL遲遲沒有的部份,也是一個商業及資料庫所基本必備的功能。
由於自己的使用習慣,常常需要換不同的電腦進行作業,因此尋找著一套如同xampp這樣,包含了Apache server、php與PostgreSQL(以下簡稱app,在windows平台下運作則簡稱wapp),能夠裝在隨身碟中,到處帶著走得工作環境,但是網路上一直搜尋不到理想可用的套件,也許是因為pgSQL的使用不如mysql來得普遍的緣故吧。
終於,找到了一個已經打包好的wapp套件:Bitnami wappstack。這個套件原本是安裝檔案,觀察一下安裝過程,是可以抽離成為Portable的,因此就著手進行抽離打包的工作。
透過php達到校內帳號密碼整合--構想
>> 2010年8月29日 星期日
這是今天早上睡醒的時候想到的構想,之前一直沒有想到。
目前學校中的環境,需要用到帳號密碼認證的,有兩套系統,一個是在linux下的帳號,另一個則是AD上的帳號。最後其實還有校務行政的部份,但是這一塊可以先不處理,因為以後的校務行政就改以db2作為資料庫系統了,這樣就可以直接用sql指令去修改了,我相信php一定做得到。
首先,先克服利用php修改linux密碼的問題:
可以運用php中的shell_exec函式,執行sudo -u username指令,進行密碼變更,
這樣就不用考慮到執行權限的問題了。
接下來是處理AD中的密碼部份,
這裡就會需要用到administrator的權限問題了,
或許,可以使用poweruser的方式、或是群組的方式克服紀錄最高權限使用者的風險。
作法:
透過php中的ladp相關函式,進行與AD溝通,修改使用者密碼。
這樣,使用者就可以透過單一介面,進行校內的帳號密碼修改,並且達到一處修改,全部生效的效果。
若是再提昇一下安全性,則可以再這個介面中使用https方式進行連線,這樣就更安全了。
以上純粹只是早晨醒來時的構想,接下來就是時間問題了,
找出時間,架個實驗機器進行實做,有希望可以成功。