2011年6月14日 星期二
2011年6月12日 星期日
2011年6月9日 星期四
php的sprintf()使用方式
php中字串格式化函數sprintf()用法簡介:
語法:string sprintf(string format, mixed [args]...);
返回值:字串
[函數說明]
本函數用來將字串格式化。參數format是轉換的格式,以百分比符號%開始到轉換字元為止。而在轉換的格式間依序包括了:
1.填空字元:0的話表示空格填0;空格是內定值,表示空格就放著。
2.對齊方式:內定值為向右對齊,負號表向左對齊。
3.欄位寬度:為最小寬度。
4.精確度:指在小數點後的浮點數位數。
型態,轉換字元:
% 印出百分比符號,不轉換。
b 整數轉成二進位元。
c 整數轉成對應的 ASCII 字元。
d 整數轉成十進位元。
f 倍精確度數字轉成浮點數。
o 整數轉成八進位元。
s 整數轉成字串。
x 整數轉成小寫十六進位。
X 整數轉成大寫十六進位。
例子:
1: <?php 2: 3: $money1 = 68.25; 4: $money2 = 54.35; 5: $money = $money1 + $money2;6: // 此時變數 $money 值為 "123.1";
7: $formatted = sprintf ("%01.2f", $money);
8: // 此時變數 $ formatted 值為 "123.10"
9: 10: ?>這個%01.2f是什麼意思呢?
首先這個%符號是開始的意思,他寫在最前面表示指定格式要開始了。也就是「起始字元」,直到出現「轉換字元」為止,就算格式終止。然後跟在%符號後面的是0這個零是「填空字元」表示,如果位置空著就用0來填滿。
在0後面的是1這個1是規定小數點前面的數字占位元要有1位以上。
如果把1改成2如果$money的值為1.23,則$formatted的值將變為01.23。因為,在小數點前面的數字只占了1位元,按照上面所規定的格式,小數點前數字應該占2位元,現在只有1位,所以用0來填滿。
在%01後面的.2就很好理解了,它的意思是規定小數點後的數字必需占2位元。如果這時候,$money的值為1.234,則$formatted的值將為1.23。為什麼4不見了呢?因為按照上面的規定,在小數點後面必需且僅能占2位。可是$money的值中,小數點占了3位,所以4被去掉了,只剩下23。
最後,以f轉換字元結尾,其他轉換字元請自行參考上面的轉換字元清單。
[關於對齊]
如果在%起始符號後面加上-(負號),將會把數位以向右對齊的方式進行處理。
看下面實例:
1: <?php 2: 3: $money = 1.4;4: $formatted = sprintf ("%-02.2f", $money);
5: echo $formatted;
6: 7: ?>2011年6月8日 星期三
2011年6月3日 星期五
回上一頁表單清空
在[PHP]:
header(”Cache-Control: no-store, no-cache, must-revalidate”);
header(”Cache-Control: post-check=0, pre-check=0″, false);
在[ASP]:
meta http-equiv=”Pragma” content=”no-cache”
meta http-equiv=”Cache-Control” content=”no-cache”
meta http-equiv=”Expires” content=”0″
2011年5月31日 星期二
主機無法處理ogv的影片導致瀏覽器不能順利播放
「多用途網際網路郵件延伸標準(MIME)」型別,可指示網頁瀏覽器或郵件應用程式如何處理從伺服器收到的檔案。例如,當網頁瀏覽器要求伺服器上的項目時,也會要求物件的 MIME 類型。某些 MIME 類型,像是圖形,可以顯示在瀏覽器內。其他像文書處理文件,需要外部協助應用程式才能顯示。
原本的主機商上沒有設定處理ogv的檔案型別,所以下面的html怎麼試就是無法顯示....
1: <video poster="movie.jpg" height="360" width="640" controls>
2: <source src="videos/1306282816.mp4" type="video/mp4" />
3: <source src="videos/1306282816.ogv" type="video/ogv" />
4: 請使用支援HTML5的瀏覽器。5: </video>
1: ".ogg" => "application/ogg",
2: ".ogx" => "application/ogg",
3: ".ogv" => "video/ogg",
4: ".oga" => "audio/ogg",
找出陣列最後一筆資料
第一個情況,要找出陣列中的最後一筆資料,用end()這個函數:
1: <?php 2: 3: $fruits = array('apple', 'banana', 'cranberry');
4: echo end($fruits); // cranberry
5: 6: ?> 1: <?php 2: 3: foreach($input as $key => $value) {
4: $ret .= "$value";
5: if (next($input)==true) $ret .= ",";
6: } 7: 8: ?> 1: <?php 2: 3: for ($i=0;$i<count(arr);$i++){
4: $i == count(arr)-1 ? true : false;
5: } 6: 7: ?>2011年5月24日 星期二
表單中文內容寫入mySQL亂碼解決法
php的跳脫字元
\$ 顯示金錢符號 $
\" 顯示雙引號符號 "
\' 顯示單引號符號 '
\\ 顯示倒斜線符號 \
\b Backspace鍵
\n 換行符號
\r Return 歸位字元
\t Tab鍵
\000 ~ \377 以16進位表示某一個字元
\x00 ~ \xFF 以8進位表示某一個字元
可以用來格式化PHP產生的HTML文件!
php取得網址與目錄
在PHP裡如果想要取得目前的網址資訊,不論是網域、目錄路徑或是參數,可以透過交叉使用下面的方法來達成目的。
$_SERVER['HTTP_HOST'] // 取得網域
$_SERVER['REQUEST_URI'] // 取得網域內的完整路徑及參數
$_SERVER['PHP_SELF'] // 取得網域內的完整路徑,但不含參數
$_SERVER['QUERY_STRING'] // 只取得參數
以 http://www.lamron.tw/php_note/get_url.php?aa=1 這個網址為例,結果如下:
echo $_SERVER['HTTP_HOST']
// 得到 www.lamron.tw
echo $_SERVER['REQUEST_URI']
// 得到 /php_note/get_url.php?aa=1
echo $_SERVER['PHP_SELF']
// 得到 /php_note/get_url.php
echo $_SERVER['QUERY_STRING']
// 得到 aa=1
也可以使用 __FILE__ 來取得伺服器上的路徑與目錄,加上使用 basename() 及 dirname() 就能夠篩選出需要的檔名或路徑。同樣以 http://www.lamron.tw/php_note/get_url.php?aa=1 這個網址為例:
echo __FILE__;
// 得到 /home/lamrontw/public_html/php_note/get_url.php
echo basename(__FILE__);
// 得到 get_url.php
echo basename(__FILE__, ".php");
// 得到 get_url
echo dirname(__FILE__);
// 得到 /home/lamrontw/public_html/php_note
echo dirname(dirname(__FILE__));
// 得到 /home/lamrontw/public_html/
以.htaccess修改虛擬主機中無法設定的php.ini
1. 在根目錄中建立.htaccess檔案,如主機中已有該檔,則可以.htaccess file generator來進行線上修改或直接下載至電腦中修改。
2.在.htaccess檔案中加入php_value upload_max_filesize 10M,紅色部分為設定值。
3.存檔後上傳即可。
.htaccess
.htaccess是什麼?.htaccess是在Apache HTTP Server這款服務器架設軟件下的一個對於系統目錄進行各種權限規則設置的一個文件,存在於Linux操作系統中。比較常見的是定義默認首頁名稱,404頁面,301轉向,等等,還有更多的功能比如偽靜態,限製圖片外鏈,限制下載,密碼保護,去除頁面廣告等等,還有非常多的功能就不一一列舉。詳細內容參考這裡。