PHP 時間運算 日期或時間加減

字串格式的日期時間轉成Time

‘2015-03-04 12:03:25’這就是字串格式的日期時間,都要先轉為time加以運算,運算完成再用date()去格式化日期。
例如資料庫dateTime時間格式或timestamep時間格式,需先轉成time才有辦法做運算
/*
	https://vector.cool
*/
$time = strtotime('2015-03-04 12:03:25');
//output : 1425441805

以下提供三種方法進行日期時間加減運算

一、慢慢算

/*
	https://vector.cool
*/
date_default_timezone_set("Asia/Taipei");
$next_Month = 30*24*60*60;//30天*24小時*60分*60秒
echo date('Y-m-d',strtotime('2015-03-04 12:03:25')+$next_Month);

二、使用 mktime()

/*
	https://vector.cool
*/
date_default_timezone_set("Asia/Taipei");
$date=date("Y-m-d",mktime(hr,min,sec,mon,day,year))

//例如:今天再加5天
date("y-m-d",mktime(0,0,0,date("m"),(date("d")+5),date("y")))

Reference:http://php.net/manual/zh/function.mktime.php

三、使用 strtotime()

strtotime()這東西比我想像聰明多了耶

/*
	https://vector.cool
*/
date_default_timezone_set("Asia/Taipei");
echo strtotime("now")."<br/>";
echo strtotime("10 September 2000")."<br/>";
echo strtotime("2020-09-29 +1 day")."<br/>";
echo strtotime("+1 day")."<br/>";
echo strtotime("+1 week")."<br/>";
echo strtotime("+1 week 2 days 4 hours 2 seconds")."<br/>";;
echo strtotime("next Thursday")."<br/>";
echo strtotime("last Monday")."<br/>";

Reference:http://php.net/manual/zh/function.strtotime.php

[……]

閱讀更多

PHP bmp 縮圖時產生 Call to undefined function imagecreatefrombmp() 解決方法

Fatal error: Call to undefined function imagecreatefrombmp()
其實PHP的確沒有 imagecreatefrombmp() 這個 function ,解決方法就是引入下列文件 ,就有imagecreatefrombmp()啦~解決~

點擊下載 imagecreatefrombmp.inc.php
https://docs.google.com/file/d/0B0WjmRBDYP2fZGl1U1dnMUpNdFk/edit?usp=sharing

但是輸出bmp的時候問題又來了,PHP bmp輸出的圖片無法開啟,
用magewbmp()這個function,很怪,
估狗了一下好像不只我有這種狀況,
有人是使用imagejpeg()來替代magewbmp()輸出,
沒辦法問題還是要解,我目前也是用者種方法,
若有高手剛好就知道有更好的解法請不吝與大家分享~謝謝

解決方法:
有人是使用imagejpeg()來替代magewbmp()輸出,
//magewbmp($image, $file ); //bmp輸出無法開啟
imagejpeg($image, $file , $quality );[……]

閱讀更多

PHP Imagetype 常數對應表

雖然我們常用的沒有那麼多~不過還是全部列出來囉~有需要的捧油請自行參考。

■藍色標記是我

1   IMAGETYPE_GIF
2   IMAGETYPE_JPEG
3   IMAGETYPE_PNG
4   IMAGETYPE_SWF
5   IMAGETYPE_PSD
6   IMAGETYPE_BMP 

7   IMAGETYPE_TIFF_II (intel byte order)
8   IMAGETYPE_TIFF_MM (motorola byte order)
9   IMAGETYPE_JPC
10 IMAGETYPE_JP2

11 IMAGETYPE_JPX
12 IMAGETYPE_JB2
13 IMAGETYPE_SWC
14 IMAGETYPE_IFF
15 IMAGETYPE_WBMP
16 IMAGETYPE_XBM
17 IMAGETYPE_ICO 

原文:http://php.net/manual/en/function.exif-imagetype.php[……]

閱讀更多

過濾script…等可能引入惡意內容或惡意改變顯示布局的代碼

//過濾 <script 等可能引入惡意內容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
function filter_danger_code($str)
{
 $farr = array(
 “/s /”, //過濾多余的空白
“/<(/?)(script|iframe|style|html|body|title|link|meta|object|?|%)([^>]*?)>/isU”, //過濾 <script 等可能引入惡意內容或惡意改變顯示布局的代碼,如果不需要插入flash等,還可以加入<object的過濾
“/(<[^>]*)on[a-zA-Z] s*=([^>]*>)/isU”, //過濾javascript的on事件

);
 $tarr = array(
 ” “,
 “<\1\2\3>”, //如果要直接清除不安全的標簽,這里可以留空
“\1\2”,
 );

 $str = preg_replace( $farr,$tarr,$str);
 return $str;
}[……]

閱讀更多

mysql的sql檔太大無法匯入又無法更改php.ini 解決方案 BigDump

在MySQL中匯入資料庫的方式有很多種,其中一般比較不熟MySQL指令、或沒有伺服器管理權限的使用者,最常用的方式就是使用phpMyAdmin管理程式的匯入介面來上傳、匯入。不過如果你的「.sql」檔案超大的話,則很容易遇到伺服器的執行時間或檔案大小的限制,結果就是太大的「.sql」檔無法順利上傳、匯入到資料庫中。如果遇到這類情況,而你又沒有權限可以修改「php.ini」檔案中的設定的話,那該怎麼辦呢?

介紹一個相當實用的「BigDump」小工具,他可以幫我們將超大的「.sql」資料檔直接匯入到MySQL資料庫中,儘管你沒有權限修改「php.ini」組態檔中的「upload_max_filesize」或「max_input_time」…等設定值,也可以直接用「BigDump」這支小程式來完成超大資料庫的匯入工作。

重灌狂人這篇文章介紹的很詳細,也有詳細的
若有需要的冰友呀~請瀏覽下方網址

***

轉自:重灌狂人
標題:如何匯入大於2MB以上的MySQL資料庫? (BigDump)

網址:http://briian.com/?p=5102

[……]

閱讀更多

php 設定常數 define為0 判斷居然=任何字串 ?????????????????????Wht

define(‘_test’,0);
echo (_test==’ABC’);
// 居然是1

困擾了我好久..
這不知道是Bug還是怎樣..
常數設為0居然等於任何字串..
知道原因的高手可否告訴小弟..

以下是我目前找出來的解法:

解法1:
define(‘_test’,”);
echo (_test==’ABC’);
// 把常數設為字串,這樣就不相等了

解法2:
define(‘_test’,0);
echo (_test===’ABC’);

[……]

閱讀更多