2014年5月21日 星期三

php 版本升級 語法錯誤問題與處理

目前將就有程式碼轉至PHP 5.4版,程式碼中的部分函式需要做調整:

  1. ereg('^[0-9]+$',$ParkingOener) 會出現Deprecated: Function ereg() is deprecated 的警告, 新版的PHP已經將 ereg()移除,修改方式改為:preg_match("/^[0-9]+$/",$ParkingOener)
  2. 目前版本針對seesion的處理更加簡單,早期使用前還需要session_register()...等,現在是直接宣告session就直接使用,所以就得程式碼移到新主機後,會出現Call to undefined function session_is_registered() ... 如
    if (!session_is_registered('ParkingSelYearSem'))
        session_register('ParkingSelYearSem');
    }
    則改寫為
    if (!isset($_SESSION['ParkingSelYearSem'])) {
       $_SESSION['ParkingSelYearSem'] = 'XXX';
    }
  3. date(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Asia/Chongqing' for 'CST/8.0/no DST' instead in /var/www/html/cis/stucis/include/initialize.php on line 7,
    處理方式:
    設定 php.ini,加入 date.timezone = "Asia/Taipei"
  4. short tag 問題,一般來說 與 都能表示是PHP程式碼的區段,不過先決條件是 php.ini 中的 short_open_tag=On ,如果移轉到新的SERVER發現有問題,請先查看此選項。

沒有留言:

張貼留言