將日期分割成年、月、日
list($syear, $smonth, $sday) = split('[/.-]', $date);
ps: 個人比較喜歡用正規示來做分割的原因是, 跟explode()比起來如果之後進來的日期格式會變動的話, 用split能減少出錯的機率. 說真的日期格式最常見的就是上面那三種.
得到某日期的Unix 時間戳
$time=mktime(0,0,0,$smonth,$sday,$syear);
得到某日期是星期幾
$week=date("w",strtotime($date));
PS:strtotime()是將日期的字串轉為Unix 時間戳.
本人原本是用編輯器以OOP來寫PHP, 但因為有大大說別再刻輪子了, 所以下定決心要好好學個MVC架構的框架, 讓自己的程式結構分明、易維護. 最後經過多方比較後決定學Yii framework, 學習的過程中, 深刻感受到國內關於這個框架的資源, 相較國外及大陸之下明顯不足, 所以希望自己能為台灣的開發者盡一份力. 我是Joker 一位自學者, 一起來大玩特玩吧!
2014年1月26日 星期日
2014年1月23日 星期四
yii framework - Cookie的操作方式
本來只想說打在 yii的實用小技巧 就好了
但是越使用越覺得Cookie這東西在開發上實在太常見, 不為此打篇說明好像不太夠
前言說夠了, 我們開始吧!
其實 官網 說很清楚了, 不過我還是把常用的列出來好了, 畢竟很多我們用不到.
寫入
$cookie=new CHttpCookie('變數名稱',變數數值);
Yii::app()->request->cookies['變數名稱']=$cookie;
讀取
$test=Yii::app()->request->getCookies(); //抓全部Cookie
echo $test['變數名稱'];
$cookieData=Yii::app()->request->cookies['變數名稱']->value; //抓指定的Cookie
echo $cookieData;
檢查某Cookie是否有值
unset(Yii::app()->request->cookies['變數名稱']); //刪除指定的Cookie
設定過期的時間
$cookie=new CHttpCookie('變數名稱',變數數值);
$cookie->expire time()+60*60*24*30; //30天後過期
設定透過HTTPS傳輸Cookie (可在framework\web\js\source\jquery.cookie.js看到說明, 參考這篇)
'session' => array(
'cookieParams' => array(
'secure' => true,
),
),
ps: 設定的位置在/protected/config/main.php
設定httpOnly 防止 XSS攻擊 (參考這篇跟這篇2)
'session' => array(
'cookieParams' => array(
'httpOnly' => true,
),
),
ps: 設定的位置同上
官方說明如下:
cookie是否只允許通過HTTP協議訪問。通過設置這個屬性為true,cookie將無法訪問腳本語言, 例如JavaScript,它可以有效減少由於通過身份被盜竊而導致的XSS攻擊。注意:此屬性僅適合PHP 5.2.0以及以上版本。
ps: 沒想到從IE6 SP1就有支援了...不過有多少人真的有注意到資安問題並開啟呢?
但是越使用越覺得Cookie這東西在開發上實在太常見, 不為此打篇說明好像不太夠
前言說夠了, 我們開始吧!
其實 官網 說很清楚了, 不過我還是把常用的列出來好了, 畢竟很多我們用不到.
寫入
$cookie=new CHttpCookie('變數名稱',變數數值);
Yii::app()->request->cookies['變數名稱']=$cookie;
讀取
$test=Yii::app()->request->getCookies(); //抓全部Cookie
echo $test['變數名稱'];
$cookieData=Yii::app()->request->cookies['變數名稱']->value; //抓指定的Cookie
echo $cookieData;
檢查某Cookie是否有值
isset(Yii::app()->request->cookies['變數名稱']);
將Cookie值清空
將Cookie值清空
Yii::app()->request->cookies->clear(); //刪除全部Cookie
unset(Yii::app()->request->cookies['變數名稱']); //刪除指定的Cookie
設定過期的時間
$cookie=new CHttpCookie('變數名稱',變數數值);
$cookie->expire time()+60*60*24*30; //30天後過期
設定透過HTTPS傳輸Cookie (可在framework\web\js\source\jquery.cookie.js看到說明, 參考這篇)
'session' => array(
'cookieParams' => array(
'secure' => true,
),
),
ps: 設定的位置在/protected/config/main.php
設定httpOnly 防止 XSS攻擊 (參考這篇跟這篇2)
'session' => array(
'cookieParams' => array(
'httpOnly' => true,
),
),
ps: 設定的位置同上
官方說明如下:
cookie是否只允許通過HTTP協議訪問。通過設置這個屬性為true,cookie將無法訪問腳本語言, 例如JavaScript,它可以有效減少由於通過身份被盜竊而導致的XSS攻擊。注意:此屬性僅適合PHP 5.2.0以及以上版本。
ps: 沒想到從IE6 SP1就有支援了...不過有多少人真的有注意到資安問題並開啟呢?
標籤:
CHttpCookie,
cookie,
yii
2014年1月15日 星期三
yii framework - 使用find、findByPk、findAll、findAllByPk的注意事項
查詢資料庫可以分為查(回傳) 一筆或是全部資料兩種, 可用的方式如下:
find() //查找指定條件的單個活動記錄。
findByAttributes() //查找具有指定屬性值的單個活動記錄。
findByPk() //查找指定主鍵的單一活動記錄。
findBySql() //查找指定SQL語句的單個活動記錄。
findAll() //查找滿足指定條件的所有活動記錄。
findAllByAttributes() //查找具有指定屬性值的所有活動記錄。
findAllByPk() //查找指定主鍵的所有活動記錄。
findAllBySql() //查找指定SQL語句的所有活動記錄。
我們來進一步看一下官方的code:
find() //查找指定條件的單個活動記錄。
findByAttributes() //查找具有指定屬性值的單個活動記錄。
findByPk() //查找指定主鍵的單一活動記錄。
findBySql() //查找指定SQL語句的單個活動記錄。
findAll() //查找滿足指定條件的所有活動記錄。
findAllByAttributes() //查找具有指定屬性值的所有活動記錄。
findAllByPk() //查找指定主鍵的所有活動記錄。
findAllBySql() //查找指定SQL語句的所有活動記錄。
我們來進一步看一下官方的code:
訂閱:
文章 (Atom)