PHP 解決 Fatal error: Uncaught Error: Call to undefined function set_magic_quotes_runtime()

set_magic_quotes_runtime()於 PHP5.3後棄用

在 PHP.net 官方文件中有提到,set_magic_quotes_runtime()於PHP5.3已經棄用,雖然不會造成Fatal error而中斷程式,但會發送E_DEPRECATED的過時警告,而在PHP4.0+已被棄用,所以PHP4.0之後不會有set_magic_quotes_runtime()這function,所以會跳出下列錯誤:

官方說明:
http://php.net/manual/en/function.set-magic-quotes-runtime.php

解決方法:

移除所有 set_magic_quotes_runtime() 程式碼。

替代方案:

PHP Deprecated: Function set_magic_quotes_runtime() is deprecated 解決方法

PHP include vs require

PHP include 與 require 到底有什麼差異阿?

相信 include() 跟 require() 大家並不陌生,都是用來引入文件,如果都一樣又為何要分成 include() 與require()呢,其實還是有些差異拉,我把在網路上看到的差異做成了比較表,方便大家選擇最適合的。

 

include

require

用到時才載入 一開始就加載
檔案發生錯誤的話,會顯示警告,不會立刻停止 會顯示錯誤,立刻終止程式,不再往下執行。
需要處裡文件檢查、速度相對較慢 速度比較快
適合動態態載入檔案 適合靜態檔案
適合用來引入動態的程式碼 適合用來引入靜態的內容
可以用在迴圈
有返回值

PHP in_array comparing two arrays

PHP in_array() 無法比較兩個陣列,這邊採取替代的作法,使用array_intersect(),取得值的交集

參考資料:

PHP 清除字串頭尾空白

這是一個很常用的功能,有時我們在處理表單發送後的資料,有時常常會多按了一些空白,這些空白可能會導致資料錯誤,或是資料轉檔時,明明看資料沒錯,怎麼就對不起來,比如說我剛剛的例子,搞了我好久

用法:

案例:

API回傳Json資料,怎麼看pickUpDateTime,都是沒值的,我就用empty()來做判斷,卻怎麼都友值,弄了半天是空白字元,我也不懂這API主人為什麼空值不拋要拋一堆空白自原來害人

不管!!至少問題找到了,問題就解決一半了,接著就是在用empty()作空值判斷前,先用trim()去過濾這些該死的空白

PHP 取年齡或年資 get age of date

取年齡或年資

用法:

這邊有個要注意的地方,使用這方法須先設定時區

第二個參數不帶則為還在職,也就是取目前時間

 

PHP 時間運算 取2日期間共幾年 get years between two dates

php get years between two dates

取2日期間共幾年

用法:

這邊有個要注意的地方,使用這方法須先設定時區

 

PHP 解決 Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in

本文出自
php 5個版本,5.25.35.45.5,怕跟不上時代,新的伺服器直接上5.5,但是程式出現如下錯誤:Deprecated: mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in,看意思就很明瞭,說mysql_connect這個模組將在未來棄用,請你使用mysqli或者PDO來替代。
解決方法1禁止php報錯
改為
鑒於這個伺服器都是給用戶用的,有時候他們需要報錯(…都是給朋友用的,^_^),不能這做,讓他們改程式吧,看方案2.

解決方法2

常用的php語法連接mysql如下

改成mysqi


常用mysql建表SQL如下

解決方法三:

php程式碼裡面設置報警級別
Deprecated的問題就這樣解決掉了,不過還是建議大家儘快取消mysql的用法,全部都走向mysqli或者mysqlnd等等。mysql確實是太不安全而且太老舊了。

參考資料:

PHP big5轉utf8不要用iconv(),iconv這個函數,用mb_convert_encoding

不要以為big5轉utf8就用iconv()這麼簡單

big5有很多字是沒有收錄的:

綫、綉、滙、栢、峯、頴、邨、着、双
iconv這個函數他遇到轉不出來的字,就停住了,可能會造成輸出文件中斷,導致文件結構錯誤。
請改用 mb_convert_encoding ,別高興太早 big5 沒有的字依然不會出來,只是不會因為遇到 big5 不認識的字就卡住,雖然輸出的速度好像會比iconv慢,不過順利解決問題。

測試:

用法:

原文出自:

http://sweslo17.blogspot.tw/2012/04/big5-erpms-sql-local-cache-phpiconv.html
http://dev.sopili.net/2009/08/phpbig5utf8iconv.html
http://help.i2yes.com/?q=node/65

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

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

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

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

一、慢慢算

二、使用 mktime()

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

三、使用 strtotime()

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

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