發表文章

目前顯示的是有「PHP」標籤的文章

【PHP】36進位轉換10進位,base_convert函數用法。

這幾天一直考慮36進位問題,還好在【廢人廢業誌】看到string base_convert ( string $number , int $frombase , int $tobase )的用法。 這個函數,可以自訂任意進位來轉換。 # 36進位轉換10進位 # base_convert($hexadecimal, 36, 10); # 10進位轉換36進位 # base_convert($hexadecimal, 10, 36); # 24進位轉換10進位 # base_convert($hexadecimal, 24, 10); # 10進位轉換24進位 # base_convert($hexadecimal, 10, 24); 【參考】 http://note.junk.tw/2010/09/php-3610.html http://php.net/manual/zh/function.base-convert.php

alert訊息亂碼,如何解決?

網頁 charset 採用UTF-8編碼,理論上JavaScript alert訊息應該也是UTF-8的 但實際上如果頁面沒有header,採用的編碼預設以預設為主 經常會出現亂碼狀況,有指定Script的編碼 <script type="text/javascript" language="javascript" charset="UTF-8"> 但似乎無效 豬後來在共用include的檔案內加入 ini_set('default_charset','utf-8'); 就此解決。 【參考資料】 http://miggo.pixnet.net/blog/post/23394075

mktime --- 取得日期的UNIX時間戳記

語法 :   int mktime (int hour, int minute, int second, int month, int day, int year [, int is_dst]) 說明 : 警告 : 此函式參數的順序和正規的Unix mktime( )中參數的順序不同,且不提供由右到左來省略參數,這是程式中常見的錯誤。 給予參數則傳回Unix時間戳記,此時間戳記是介於Unux時期(January 1 1970)與所指定的時間的總秒數,傳回的時間戳記是個長整數。 參數可以由右到左的順序中省略,任何參數以此方式省略時,將會被依照本地日期與時間設定成目前的值。 如果時間是在dst(daylight savings time)的整個期間,is_dst可以設為1;如果不是則設為0;如果不知道是否時間是在dst(daylight savings time)範圍內,則設為 -1(預設)。 注意 : is_dst增加於 3.0.10. mktime( )有助於日期的計算與確認,它會自動地計算正確的值,例如 : 下列各行都將產生出字串"Jan-01-1998"。 【參考資料】 http://www.php5.idv.tw/modules.php?mod=books&act=show&shid=135

strftime -- 根據區域設置格式化本地時間日期

語法:  string strftime ( string format [, int timestamp]) 說明: 傳回用給定的格式字串對給出的 timestamp 進行格式輸出後的字串。如果沒有給出時間戳則用當前的本地時間。月份和星期幾以及其它和語言有關的字串寫法和用 setlocale() 設定的當前的區域有關。 格式字串能識別下列轉換標記: %d - 月份中的第幾天,十進制數字(範圍從 01 到 31) %m - 十進制月份(範圍從 01 到 12) %S - 十進制秒數 %I - 12 小時制的十進制小時數(範圍從 00 到 12) %M - 十進制分鐘數 %H - 24 小時制的十進制小時數(範圍從 00 到 23) %y - 沒有世紀數的十進制年份(範圍從 00 到 99) %Y - 包括世紀數的十進制年份 【參考資料】 http://www.php5.idv.tw/modules.php?mod=books&act=show&shid=138

trim -- 去除前後多餘空白

語法:string trim (string $str [, string $charlist ]) 去除字串開頭和結尾的字元,回傳去除後的字串。如果第二個參數沒給值,預設會去除下列這些字元: " " (ASCII 32 (0x20)), an ordinary space. "\t" (ASCII 9 (0x09)), a tab. "\n" (ASCII 10 (0x0A)), a new line (line feed). "\r" (ASCII 13 (0x0D)), a carriage return. "\0" (ASCII 0 (0x00)), the NUL-byte. "\x0B" (ASCII 11 (0x0B)), a vertical tab. 如果要去除其它字元,可以在第二個參數裡設定。

日期時間函數date()詳解

年-月-日 echo date('Y-m-j'); 2007-02-6 echo date('y-n-j'); 07-2-6 大寫 Y 表示年四位數字,而小寫 y 表示年的兩位數字; 小寫 m 表示月份的數字(帶前導),而小寫 n 則表示不帶前導的月份數字。 echo date('Y-M-j'); 2007-Feb-6 echo date('Y-m-d'); 2007-02-06 大寫 M 表示月份的 3 個縮寫字符,而小寫 m 則表示月份的數字(帶前導 0 ); 沒有大寫的 J ,只有小寫 j 表示月份的日期,無前導 o ;若需要月份帶前導則使用小寫 d。 echo date('Y-M-j'); 2007-Feb-6 echo date('Y-F-jS'); 2007-February-6th 大寫 M 表示月份的 3 個縮寫字符,而大寫 F 表示月份的英文全寫。 (沒有小寫 f ) 大寫 S 表示日期的後綴,比如“st”、“nd”、“rd”和“th”,具體看日期數字為何。 說明: 表示年可以用大寫的 Y 和小寫 y ; 表示月可以用大寫 F 、大寫 M 、小寫 m 和小寫 n (分別表示字符和數字的兩種方式); 表示日可以用小寫 d 和小寫 j ,大寫 S 表示日期的後綴。 時:分:秒 默認情況下,PHP解釋顯示的時間為“格林威治標準時間”,與我們本地的時間相差 8個小時。 echo date('g:i:s a'); 5:56:57 am echo date('h:i:s A'); 05:56:57 AM 小寫 g 表示 12小時制,無前導 0 ,而小寫 h 則表示有前導 0 的 12小時制。 當使用 12小時制時需要表明上下午,小寫 a 表示小寫的“am”和“pm”,大寫 A 表示大寫的“AM”和“PM”。 echo date('G:i:s'); 14:02:26 大寫 G 表示 24小時制的小時數,但是不帶前導的;使用大寫的 H 表示帶前導的 24小時制小時數 說明: 字母 g 表示小時不帶前導,字母 h 表示小時帶前導; 小寫 g 、 h 表示 12小時制,大寫 G 、 H 表示 24小時制。 phperz~com...

substr() - 取得部份字串

substr(string,start,length) string:要處理的字串 start:開始搜尋的位置, 正數 - 在字符串的指定位置開始 負數 - 在從字符串結尾的指定位置開始 0 - 在字符串中的第一個字符處開始 length:選取字串的長度 正數 - 從 start 參數所在的位置返回(傳回的字串將會從 start 傳回 length 個字元 ) 負數 - 從字符串末端返回(傳回的字串將會結束於 string 結尾的第 length 個字元) 【參考資料】 http://article.denniswave.com/5198

explode --- 切開字串

語法: array explode (string separator, string string [, int limit]) 說明: 傳回一個字串的陣列,以參數 separator為界線將參數 string切開, 如果有設定參數 limit,則傳回的陣列最多將會包含 limit個元素,而最後一個元素將會包含 string全部剩餘的部份。 範例: <? $pizza = "piece1 piece2 piece3 piece4 piece5 piece6"; $pieces = explode (" ", $pizza); ?>

取得MySQL新增一筆資料後的序號

每次新增完一筆資料後想馬上知道該筆序號時, 都要翻箱倒櫃的找書查指令, 要不然就使用SELECT的方式來找最後一筆資料.... 很麻煩,很困擾,很幹... 其實MySQL就有很好的方法可用, $i = mysql_insert_id() 不要再忘了...^^

日期要如何比較?

一般來說日期或時間要拿來比較先後的話,利用PHP函數來做會比較方便,原則上先利用strtotime()把日期或時間轉換成秒數就可以直接比較了。 strtotime('2011-6-8 22:22:22') 如果要把秒數轉換回日期或時間的話,則可以用date()來完成。 date("Y-m-d H:i:s",1263804691) date("Y-m-d",1263804691) 這樣就可以換回來了。

如何將字串型態轉成數值型態?

當我們給變數的值是利用雙引號括住數值或字串時,就是指定一個字串給變數,例如:     $a = "Hello!"; $a 變數的值就是字串。請看底下的範例: <? $a = "hello!"; echo $a; ?> 輸出結果為:     hello! PHP 有一項特性,就是 PHP 的變數是在執行時才決定型態的,因此字串也可以用來做計算 。 PHP 將字串拿來做運算時,會依據底下 2 個原則設法將字串轉成可以計算的型態: 1. 字串中包括 "."、"e" 或 "E" 時轉換成 double 型別,否則轉換為 integer 2. 無法轉換時則為 0 之前曾見過這樣的寫法:     $foo = 5 + "10 Big Pigs"; PHP 會將字串 "10 Small Pigs" 先轉換成 integer 10,再做加法。字串轉數值的範例: <? $foo = 1 + "10.5";      // $foo 為 double (11.5) $foo = 1 + "-1.3e3";    // $foo 為 double (-1299) $foo = 1 + "bob-1.3e3"; // $foo 為 integer (1) $foo = 1 + "bob3";      // $foo 為 integer (1) $foo = 1 + "10 Small Pigs";     // $foo 為 integer (11) $foo = 1 + "10 Little Piggies"; // $foo 為 integer (11); $foo = "10.0 pigs " + 1;        // $foo 為 int (11) $foo = "10.0 pigs " + 1.0;    ...